test(invalidate) : tests for invalidate feature

Initial tests
test(invalidate): fix tests for the invalidate() method

To make it possibility to reconfigure module in different "describe" areas we have to
inject $translate service directly when want to use it. In other case we cannot change
module configuration due injector is already called (or something like that).

Custom loader was rewritten to simulate multiple languages loading properly.
test(invalidate): event testing changed

Move tests for events in different place and add new ones
test(invalidate): coding style improvement

Coding style in tests is improved according to "grunt jshint".

But, I'm completely disagree that 'dot notation' in case of $translationTable.en, for
example, is better than $translationTable['en'].
feat(invalidate): added invalidate() method

Added realization of the invalidate() method.
chore(invalidate): add ngdoc

Add ngdoc for the $translate.invalidate() method
chore(invalidate): rename to refresh()

Rename the invalidate() method to refresh()
test(refresh): change behavior when no loader is registered

When no loader is registered the refresh() method has to throw an error
chore(refresh): rewrite code to match new requirements

Now refresh() method will throw an error if there are no loaders registered.
ngdoc is updated.
chore(refresh): add $translateRefreshStart and $translateRefreshEnd events

If the module is able to refresh translation tables the refresh() method will broadcast
$translateRefreshStart and $translateRefreshEnd events.
chore(refresh): coding style + change message of the error

Change codding style
Move checking for loader existence upwards
Change the message of the error
Merge pull request #125 from DWand/feature-invalidate

Feature $translate.refresh()