Allow reconfiguring slaves (Changing attribuets and resources) ad-hoc

Added a method tryReconfigure to Slave which updates the local config
and propogates it out to the master. The master takes the updated
config and persists it in the Registrar.

This changed the assumption in mesos that slaveInfo is an immutable
struct.

The risk is mitigated by only allowing strict supersets of attributes
and resources to be set. You can do things like increase the number of
CPUs a machine has, but not decrease them.

There is one case we cannot guard against with that, and that is if a
framework is doing a negative check for a attribute of a node
(Checking that an attribute doesn't exist), the framework will
possibly get a node which didn't use to have that attribute but now
does.

The implementation starts by updating the attributes locally, then
propogates them outward (the main master, the replicated master log),
so the new properties effectively end up being eventually consistent.