CM/whirr Integration

Provides:

* Declarative CM managed role to service integration - HDFS, MR1, ZK, HBase, Hive, Impala
* Reasonable topology inconsistency checks, pre-provision fast fail
* Uberjar assembly, pruned transitive dependencies
* Good unit test coverage
* Reasonable integration test coverage

Raises:

* Pass whirr hadoop config through to CM services, currently hardcoded to reasonable defaults
* Add CDH Client (CM Gateway) as client config target
* Hue/Oozie service implementations
* Ensure service ports are open as part of firewall treatment
* Test with CM Free, pull license deployment up from shell to CM API, provision monitoring if available
* Improve CM API interactions, integration tests
* Resolve 'net.schmizz.sshj.transport.TransportImpl.die(TransportImpl.java:570) Dying because - java.net.SocketTimeoutException: Read timed out' issues
* Parameterise Metastore DB - allow postgres as well as mysql
* Resolve config warnings within CM post provision, try and avoid replicating CM wizard settings heuristics by passing through values
* Extensive testing beyond Rackspace UK, CentOS 6.3, CM Ent 4.5