VerticleManager (and friends)

This is the summary of all changes I've been asked to squeeze in one commit.

- If proxy fails, than try without proxy
- Introduce VertxConfig, ProxyConfig, etc.
- Moved version into Manifest
- Introduced VertxModule to provide easy access to a module config,
  but also its files. It's also nice for testing, as its now possible
  to simulate modules.
- Introduced a little ModuleWalker
- Introduced LocalModuleRepository as an alternative; also useful for
  testing
- Created DownloadHttpClient out of boilerplate in DefaultModuleRepository
  and changed DefaultModuleRepository accordingly.
- Introduced ModuleManager and copied code with as little changes as
  possible into ModuleManager.
- introduced ModuleConfig and allowed to pass modDir to VerticleManager constructor
- introduce ModuleRepository and Unzipper. Fixed an issue with BlockingAction
- I wasn't quite happy with the proxy enhancement to VerticleManager, as proxy
  functionality is certainly required for more than just remote repositories.
  The component which actually requires the proxy parameters is DefaultHttpClient.
  But simply copying the logic from VerticleManager to DefaultHttpClient didn't feel
  right, especially as proxy configs can be more complicated than just a proxy host.
  Sometimes you need proxy user and password. Sometimes you want to more explicitly
  register hosts as internal or external (requires proxy). This led to a first version
  of ProxyConfig.
  When the number of config param grew I felt to put them into a config file (json). Yet I didn't
  want to loose the capabilities to config via system properties and/or env vars. At
  that point I designed VertxConfig. It reads a json config file, but supports
  place holders (e.g. env vars, props, include files). That made ProxyConfig more
  easy as all boilerplate moved into (re-usable) VertxConfig. Re-usable, because
  more vertx config params (e.g. language mappings) can easily be added.
  Along the way I improved the exception message for DefaultHttpClient connection errors.

Signed-off-by: jdo <juergen.donnerstag@gmail.com>