refactor: use Pratt's parser for expressions in attributes

This doesn't merge cleanly due to the custom attributes commit that landed but I'm opening a PR anyway for the early review. 

@mlaval I will need your help with rebasing this one on top of your changes. Could you give me a hand with this one when you are available?
And I agree that we should promote `model` for consistency. I would even go as far as saying that we should make 'value' read only and `model` being 2-way bound.