Re-Wrote Calendar to Watch All Event Sources

Many updates to the calendar have ensued in the last month. 

1. The calendar is attached to the scope so that any method can be called from a controller at any time.
2. We are using the eventSources field instead of events, so that more than one source obj can be added to the calendar at once.
3. Every Array length inside of eventSources is being watched for changes. 
4. The view is updated to be the current view on every update, so that the calendar does not switch back to the default view any time the watch is fired.
6. equalsTracker attrs has been added to force the calendar to update on use cases that render the total eventSources length equal.
7. Rewrote and added tests to accompany each breaking change.