Log4j and custom Exception changes

1. Removed unneeded log4j dependency
2. Rearranged elements in the log4j.xml that were out of order per the
DTD
3. Converted custom Exceptions to case classes