constructor for NewFSMContext

Make it possible to test FSM Deciders by letting outside users construct
an FSMContext. Without this constructor, the FSMContext's fsm will
always be nil, and as such it will have a nil Serializer.
add State() to Outcome

Facilitate testing of deciders by outside packages by letting them check
for a state change caused by their Outcome.

Also simplified mergeOutcomes() to use this part of the interface.
Merge pull request #44 from bgentry/friendlier-to-test

Facilitate testing of deciders