Add another function type running just before Step functions.

These 'PreStep' functions are ideal for cache invalidation and rebuilding in environment services etc.
Decompose sim stepping and make method public for test instrumentation.
Basic Network as environment service.
Send a message through the NetworkAdaptor (for convenience, and for Conversations to work properly)
Add node discovery and constraints to the network.

 * MessageHandler as a new global environment service which holds network constraints.
 * NetworkRangeConstraint as an implementation of a network constraint.
 * NetworkModule to provide guice bindings for the network.
Remove old messaging implementation.
Add new interface locations and API to rules-messages link.
Bind MessageHandler for scheduling in the NetworkModule.
Update protocols for network changes and small functionality test.
Allow for state accessor to return super class of initial state type.
Merge pull request #64 from Presage/messaging_fix

Messaging reimplementation