Update to Maven and Fix CharToken related bug

The update from Ivy to Maven provides a few benefits. First, the build system is simpler and cleaner.  Second, it allows us to use convenient plugins like appassembler (auto generates shell scripts), avro maven plugin (converts avro schema to java classes), and the ANTLR plugin (creates a java class from a grammar). 

The CharToken fix is related to a bug we discovered while migrating the build system to Maven since we discovered that Ivy ignores assertions by default during Unit Tests.  We found that RecordBreaker was ignoring single characters during structure learning and when converting to Avro.   

We also implemented a few minor cleanups such as removing invalid overrides and adding thrown exceptions.