Made factory types consistent

All the factories except for the internal state factory required the
types parameters of the objects being create to be specified when the
factory was created.  The internal state factory only required those
type parameters when the objects were created by the factory.  In
practice, this design proved to be a little more effective thought not
by much.  All factories now follow this design.
Breath first search of children before recursing

The InternalState.isChild method would check each child AND it's child
for a matching state before moving onto the next child.  In a heavily
hierarchical state structure this is very unoptimised.  Each child
should be checked before moving on to the next layer down.
Merge pull request #31 from bnorm-software/factory_types

Made factory types consistent
Initial draft of the README

The initial draft of the README contains basic information about FSM4J.
This includes a description of the project, some basic examples, the
current list of features, and some future features for the porject.
Improved state machine transition tables

The state machine transition tables had a few problems with them in the
initial design.  Hopefully this update will fix the issues.
Adjusting header levels

A few of the headers were too big.  Making them a little smaller.
Another round of header adjustments
Transition listeners should have access to state machine context

The transition listeners previously did not have access to the state
machine context.  Any behavior that is performed by the state machine
should have access to the state machine context.
Merge pull request #34 from bnorm-software/listener_context

Transition listeners should have access to state machine context
Transitions should have guards

The Transition.allowed() method has been refactored into a
TransitionGuard interface that also requires that the state machine
context be provided.  This allows the transition guard to be based off
of the current state machine context.
Simplified code example section
Merge pull request #35 from bnorm-software/transition_guard

Transitions should have guards
Formatting update to the README
Merge pull request #36 from bnorm-software/readme

Readme
Merge branch 'master' into junit
Fixed InternalStateTest after merge from master