Revised all the exception classes. They now can carry some useful information. Also, many of the exceptions that were previously provided were not necessary and overlapped with other exception. A tighter more concise set of exceptions has been created to replace the old exceptions