More addressed reviews! Added modules for userfsm.

We heavily focused on userfsm.js and broke apart most of the file
into separate modules, which helps with the overall clarity of the
file. There are 4 modules total, each dealing with different
functionality that was originally handled in the fsm.

* Added 4 modules to improve clarity