Performance

Hi!

This PR has two main goals: improve performance and make code more understandable.

The main concern about current implementation is that on each `Post#title` call we perform full scan of `Post` columns with grep & sort, which is very unefficient. The other concern is that we instantiate `LocalizedReader` and throw it away on each call, that adds more work to GC.

During refactoring I was able to decrease access overhead to a localized column from 210x to 10x. Can we make it better?

The approach to finding localized attributes was changed. Instead of grepping we check if instance responds to a method. I also added caching of each resolved combination in a class varible.

 `Traco::LocaleFallbacks` was introduced in order to decouple fallback calculating logic. I wanted it to be compatible with https://github.com/svenfuchs/i18n/blob/master/lib/i18n/locale/fallbacks.rb, thus `#[]` interface. IMHO, `:any` fallback looks a little weird, however, I didn't want to change any existing behaviour.
 
 I also found that using
 
 ```ruby
 MyModule = Class.new(Module)
 include MyModule.new(...)
 ```
 
 technique is more understandable than dealing with `INSTANCE_METHODS_MODULE_NAME`. 
I can fix this myself post-merge, but putting this here as a reminder:
https://github.com/barsoom/devbook/tree/master/styleguide#dont-define-bang-methods-without-good-reason