GEOMESA-265, 264, 263 Create a tools wrapper shell script, Make output for `list` command line tool prettier, and StatsWriter Exception when exporting

This adds a wrapper shell script to the existing geomesa-tools and changes up a lot
of the way things used to work on geomesa-tools. 

* First, --help is completely changed and works on individual commands, rather than just dumping the whole usage text. 
* `describe` is a new feature that describes the attributes on individual features. 
* `list` now only lists the names of features on a catalog table. 
* Almost every flag has a single character option. 
* Accumulo username and password can be specified with -u/--username and -p/--password
on the command line. 
* One can also only give a username and geomesa-tools will give an additional prompt for password, therefore not putting it in the shell history. 
* A geomesa-test-script.sh is included under /bin to run every command in a chain, just to ensure things are working on your individual machine. You will have to customize this script with the correct username, password, catalog table, feature name, and spec. 
* The README has been greatly updated to reflect the changes made through this PR. 
* Exception handling with most commands. If a feature/catalog/other stuff is typed incorrectly or prevents something from happening, the exception should be caught in most places and dealt with in a quieter way.
* Finally, many stylistic changes were made from a meeting with the Geomesa Dev team on this past Friday, with more plans to add to geomesa-tools.
From digging in the source code, this appears to be how the shell gets it:
  val keepers: String = conf.get("instance.zookeeper.host")
  val instanceDir: Path = new Path(conf.get("instance.dfs.dir"), "instance_id")
  new ZooKeeperInstance(UUID
                               .fromString(ZooKeeperInstance.getInstanceIDFromHdfs(instanceDir)),
                                keepers)