Translation fallback

Merged changes from #107 and #115 

Fixed test.

I've another idea how to do it. Thats reason why branch is called v1.

Maybe there should be aproxy class that will keep returning default values for getMethod, and will create new entity when you call setMethod.
Then when we call mergeNewTranslations() this accessor class should be called for all created entities.

On the other hand it will stop to be easily readable, so maybe better idea is to keep it like now, when you need to provide parameter to create new entity, and you are allowed to get a default value when translation does not exists?