Added a RegisterFailedException class.
Cleaned up the way registration errors are handled.

* The use of booleans to note registration success and failures
  have been replaced with the use of exceptions. The exception
  RegisterFailedException was created to support this.

* The return type of the registerStudent() function has been
  changed from bool to void to support the change to using
  exceptions as well.

* RegisterServiceImpl.java:Line 34; Reminder to check with Navin
  the ideal way of handling this.

* TODO: The client does not differentiate between random server
  exceptions and exceptions caused by integrity constraint issues.
  Some code should be written to handle the two differently.
RegisterFailedException can be handled differently from other exceptions.

Modified the necessary classes to allow the client to handle RegisterFailedException
differently.

* RegisterFailedException extends Exception instead of RuntimeException and implements
  Serializable. This is required for the exception to be sent over RPC.
Merge pull request #3 from Ayrx/cleanup

Cleanup handling of registration errors.