Significantly improve compatibility across YARN versions

Since the API between Hadoop versions is not backwards compatible,
expand the compat layer to allow the binary to run across 2.2, 2.3,
2.4, 2.4.1, 2.5 and 2.5.1. Note the latest 2.4 (2.4.1) is recommended.
Additionally add plenty of polishing to the CLI

related to #321