Controllers store std::map<int, Entity*>

* Controller no longer keeps an Entity* but rather a std::map<int, Entity*>
  in its place, allowing controllers to be responsible for multiple entities.
* Controller::get_entity thus now requires an integer ID and will return the
  appropriate Entity* if it is stored in that controller's entity map.
* Controller::cnotify function selects whether to notify a given Entity
  in the entities map directly or to notify all entities held by the
  controller.
* Valid controllers must now implement notify(msg_type, to, from, message)
  instead of just notify(msg_type)
* add_prop and update_prop messages are broadcast to address 0 instead of
  global -1 address as the SimController fails to receive messages
  otherwise - due to its special nature of holding a direct pointer to
  the Simulator, rather than using the new entity map.
* Removed unused references to Controller subscribers vector
* Fixed 'bug' where message_types could only have one subscriber
* Renamed misnamed 'health_loss' event to 'subscription' on new subscription
* HootController no longer uses tick function to tick
* HootController now listens to sim_tick for tick effects to be applied