Replaced Pair with a purpose-made value class that has better names

This is just the tip of the iceberg, though. See UF-94.
Groundwork for UF-89/UF-97: improved unit test coverage of PlaceManagerImpl
Factored out repeated mocking and going-to-Kansas in the test
Updated instructions (m2e-apt allows processors in main dependencies section now)
Much progress on straightening out Activity lifecycles (refs UF-99)

Sorry for the giant commit, but these changes are all interlocked.

Highlights:

* Activity impls are no longer responsible for calling any of their own lifecycle methods. Their lifecycle methods are a contract that the framework promises to obey.
* Pulled up the onStartup, onOpen, onClose, onShutdown lifecycle methods to the top-level Activity interface and documented the lifecycle contract.
* Eliminated overloaded lifecycle methods where possible (eg. onStartup() and onStartup(PlaceRequest))
* The framework no longer responds to the activity lifecycle events OnOpen, OnBeforeClose, and OnClose. Apps should not fire these events. The framework does still promise to fire these events at the correct times so apps can observe them (see UF-99)
* Added clear explanations to many interface javadocs based on what I learned (and added tests for!)
Temporary workaround for UF-100 (the build-in NotFound activity can't be used in client-only apps)
Removed launch methods on all activity types; now using onStartup exclusively (refs UF-99)
Finished solidifying Activity/ActivityManager/PlaceManager lifecycle contract (fixes UF-91 & UF-99)