Remove Observation class; Enforce model inheritance

- Replace class Observation with a uint64_t which should be sufficient for
  most purposes. This simplifies the code, makes it faster, and allows for
  Models to implement the IModel interface.
- Make problem models inherit from IModel interface.
- Move terminal observation from global into ObsTree namespace