Allow clients to use the byte_array overload of send().
Add accessors to timer engine state.
Open public access to timeout() trigger.
Add simulation run loop implementation.
Use shared_ptr to host.