Fix some parts of fsm.js and refactored tests

This commit fixes some parts of fsm.js

  * a deep copy of the object is passed to stateName-callbacks of the
    fsm instead of the object itself.
  * the fsm.start method now returns an object so that more than fsm
    objects of same type can be created.

This commit replaces underscore js as a dependency with jQuery due to
better support for extend and deepCopy in latter.

Also, the tests are now refactored as follows

  * Instead of implementing various fsm eg. airplane-fsm in the test.js
    file, they will now be added under example dir
Fix whitespace