Internal restructuring

Moves (internal) function to the top.
feat: nested objects will be transformed when using `$translateProvider.translations` statically

related #36
fix issue w/ jshint introduced in 73efcfce
Merge branch 'test-fix' into refactoring-flatObject-for-statics
Merge pull request #37 from knalli/test-fix

fix issue w/ jshint introduced in 73efcfce
Merge pull request #38 from knalli/refactoring-flatObject-for-statics

Refactoring flat object for statics
Code documentation
Merge branch 'canary' into documentation
feat(docs): add documentation comments

To maybe later generate a documentation out of it.
Add contributors to contributors list
feat(storageKey): add a storageKey method

The storageKey method allows the user to change a key, which will be used
to store the language code. So, the user can change this key during the
configuration phase now.

BREAKING CHANGE: The $STORAGE_KEY isn't represent a current storage key
from now. To discover which key is used now you have to call the storageKey
method without params.
test(storageKey): add tests for a storageKey method
chore(storageKey): add a basic comment docs
chore(preferredLanguage): fix tests (restructure, delete)

* change the structure of the preferredLanguage tests to be more logical
* delete some tests in order to DRY
Merge pull request #39 from DWand/storage-key-feat

storageKey feature + preferredLanguage tests fix