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.
find_key will explode with an exception that will wind up causing the API to return a 404 Not Found if deployment_role_id does not refer to a deployment_role by ID.