Tweaked API loading

* use a promise on route definition
* do not reload contracts when the API is already loaded
* the map definition lives now in the controller, the directive
  creates the map itself based on that definition
* added an example with two maps