Prototype (with tests!) of an attribute feature for making the code easier to work with.

I expect (like fpm) many platforms to have many configurable attributes. Might as well learn from fpm's mistakes here ;)