Make MemTraceCore.rob_tail persistent.
Remove reflection-invoked Tick and InPort.

Instead of automatically invoking Tick and InPort objects, components
now must place code in an override of `Component::tick()`. This doesn't
actually result in any repetition of code, since now the Tick objects
don't need to be declared (having to call `InPort::read()` manually has
been deemed an acceptable tradeoff for the increased flexibility in port
read timing). Avoiding the need to go through several twisty layers of
indirection to invoke a tick callback improves performance substantially
(runtime on `bench_simple` reduced by around 15%).