Use a new instance of routers for each call

This allows us to safely use instance variables inside blocks, lambdas,
procs, and helper methods.
DRY up code

Add test for mounting other routers.
WIP: make #call return env hash
Rename 'should_i' to 'condition', 'do_this' to 'action'
use ruby 2.1.2
fix specs to work with refactored code
MessageRouter##call returns the router instance instead of the env

Also fixed documentation to reflect the change
Update rspec & guard gem versions and use new rspec expect syntax
Start getting rid of using globals in router spec
fix formatting and remove old unused globals
more refactoring and getting rid of globals in router specs
pass thing_to_match to router helper function in spec
no more globals in router specs.
dup env on router initialization
return self instead of false if prerequisite aren't met