Add basic quest tracking and completion.

* Adds the concept of a completable objective.
* Allows the tracking and completion of a sequence of objectives via `ObjectiveManager`.
* Fixes some bugs in the player interaction behaviour.

See the branch `quest_tracking_demo` for a playable demonstration.