Refactor getters to be plain Arrays

Refine definition of Getter and Keypath

KeyPath: Array.<string>
Getter: [ <KeyPath|Getter>, ...<KeyPath|Getter>, <function> ]

Add evaluator to do more efficient push value based evaluation

TODO:
- Test evaluator
- Add tests for more in depth getter observing / evaluating test cases
- Add tests for dynamic store attachment