Refactoring juju & maas state handling in gui and charms

Separate juju and maas state throughout the code to make the code handling state more explicit.

Rename pegasus.parse_state to update_machine_info and do not build a list of [Machine, MaasMachine] which isn't used anywhere.

Update some documentation strings & minor pep8 line-length and whitespace fixes

In gui.py, ControllerOverlay: promote update_and_redraw to a member function for readability.

Update test_pegasus to match api changes, tests still need much work.

Simplify construction of gui objects that either don't need juju state or will be immediately refreshing it.

Be more explicit with naming state variables, and check class of state passed to charm