Make setStateTimestamp handle missing input

- This can happen on both setting (from API) and reinstantiation from a
  database.
Ensure tests harness is behaving.
Ensure missing corp/StarbaseDetails are ignored

- Well, warned about at least, for a start.
Elevate a logging level.
A module for the backend for monitoring updates

- This makes it much easier to denote a method as something that updates
  attributes for an instance.
- Decorator for checking for updated attributes for a tower so that the
  backend can be notified.
- The setUp method updated to allow object overrides.
Make use of the decorator.
Ensure updates to states are stored there.
Minor update to comments.
Moved the tracking to the monitor

- Also add logging where applicable.