message: add cache method to remove outdated entries
endpoint: fix error with repeated initialization

Since endpoint instances are unique instances, attempts to create the
same endpoint multiple times reference the same object, but the init
method failed to detect this so re-initialized all the local state.
message: refactor source inference to work without message instance
message: rename method that creates BEBO state
message: add cache clear method
endpoint: provide interface to reset endpoint state
misc: add ManagedClock along with RealTimeClock

Preparing for controlled unit testing.
tests: Add mix-ins for deterministic unit testing
support: add support for capturing log messages in unit tests
endpoint: add raw socket send and receive operations

The default ones use the bound socket.  A FIFO-based extension is
available in tests.support for unit testing.
message: correct application of randomness in BEBO
message: change cache manipulation to support current use plan
doc: add private documented members for development docs
support: ignore keyword parameters to FIFOEndpoint
message: permit idempotent None assign to message endpoints
message: correct missed case of None token

Per issue #2 the default token should be empty, not None.
message: add interface to simplify creating message-layer reply
support: emit unprocessed buffered log messages

Log messages that are relevant to the unit test infrastructure should be
cleared after successful tests, so that any that remain during teardown
are emitted for diagnostic purposes.
endpoint: move import overrides before exception definition
refactor: move MessageIDCache from message to endpoint

The only user of these classes is endpoints, and endpoints need to
subclass them, so put them where that's easier to do.