Add attrib tracking

This monitors changes to attribute changes on nodes, deployment roles, and noderoles, determines what (if any) noderoles are affected by those attribute changes (based on information declared in the wants-attribs stanza of role definition in the .yml files), and sets the state of any noderoles that are affected by those attribute changes to allow the annealer to rerun them.

I am mainly looking for feedback surrounding the design and implementation of this for now.