Time support plugin

WIP :construction: 

This PR:

* adds the ability to register plugins with the date range picker - using the same basic plugin architecture from the Tabler codebase.
* adds a time support plugin which when enabled renders a panel within the date range picker and allows the user to specify a time for each calendar

![time-support-plugin](https://cloud.githubusercontent.com/assets/1387956/4353456/5b4c0f16-4233-11e4-99fd-2e2df9bb00c4.png)

__Upcoming updates__
* add a checkbox to the panel to allow the user to opt into specifying time (see option 2 here: http://2plzrl.axshare.com/#p=new_page_1)
* add field labels
Guessing this was lifted straight from tabler via this PR: https://github.com/BrandwatchLtd/tabler/pull/19

Basically I changed to a for loop because it improved performance dramatically - and with tabler this improved the speed of some unit tests by quite a large factor (as the code is run every time a unit test runs & tabler has a lot of plugins)

On here it might be a case of YAGNI