Updated Calendar to Utilize uiConfig for Event Callbacks 

The calendar was utilizing an isolated scope to take in the events. This was not good for communication between the calendar and the scope's event objects. We need to evaluate the events from the ng-model attribute so that scope functions can be wired to the calendar's event callbacks.

There has been one major change to the api of the calendar. We are now taking in the eventSources through ngModel so that an event array of objects and arrays of source objects can be added at the same time. 

Now the events object that is added into ng-model needs to be structured as a nested array. This is all documented here http://arshaw.com/fullcalendar/docs/event_data/eventSources/

We are still requiring ng-model so that the calendar cannot be created without an events array of individual event objects. 

We are detecting whether or not the user has created header options for the calendar and if so we use those instead of the defaults.