Refactor MaasState, add tests

- MaasState now takes maasclient as param, not static list of nodes,
  to match JujuState's live-updating behavior

- switch to py3.4-only Enum subclass called MaasMachineStatus to
  encode Maas Machine Statuses, to help readability and debugging

- add UNKNOWN status to encode status of empty 'dummy' MaasMachines,
  if they ever get produced

- remove unused code in maasstate
- consolidate code for getting machines
- add tests and test data