refactor(c): refactor module definitions into separate -module.js files
feat(c:config): add config module with API constants
refactor(c:event): refactor API keys into config module
feat(c): install angula-mocks
feat(c): install and set up Karma

- Install karma
- Install karma-chrome-launcher
- Install grunt-karma
- Add karma config file
refactor(c): include refactored module definitions
feat(c:test): add geocode-services tests
update(c): update Jasmine to version 2
update(c:gruntfile): update jshint, watch, default task

- jshint now lints module files and test files
- watch:js now watches module files
- default task now runs karma on load
fix(c:geocode): fix missing semicolon
fix(c:about): fix missing semicolons
fix(c:contact): add ngResource as dependency
update(c:contact): initialise scope and return promise

- Ensure sendMessage returns its promise
- Initialise $scope.contactForm to avoid Reference Error
fix(c:contact): fix missing semicolons
fix(c:event): fix various minor problems

- Remove unneeded injection of $state in EventController
- Remove unneeded catch return statement in AgendaController:subscribe
- Fix various missing semicolons
- Remove unneeded injection of GeocodeResource in EventViewController
fix(c:event): add missing module dependency for ui.router
fix(c:event): various minor fixes

- Remove default email parameter for NewsletterResource.subscribe as it
adds it as a GET parameter, not a POST parameter as initially thought
- Remove uneeded assigning of intialised variables to undefined
- Remove logging methods
- Ensure failed event requests get caught
- Refactor geocoding into its own function
feat(c:test): add unit tests

- config-services
- contact-controllers
- contact-services
- event-controllers
- event-services
fix(c:test): various fixes for geocode-services

- Remove accidental parameter in beforeEach statement
- Refactor maps API url template into its own variable
- Add test to check for a returned promise
- Add test to check that returned promise is valid
- Add test to make sure that promise gets rejected if a bad request is made