Added a UserFactoryException for when things go wrong
MessageException -> MessageFactoryException
Moved exceptions into their own directory
Interfaces going into their own directory!