Add state monad and behaviour
Fix monad behaviour callback
Modify the monad test macros to work with state

If the monad being tested implements the new state behaviour, evaluate
the expected value and the result by running them both against a default
state before comparing them.
Fix state-transformer:modify-and-return

The method was returning a single value, rather than the necessary tuple
required for binding to work.
Apply the generic monad tests to state-transformer
Remove lfe sample rebar plugin dependency