Implement OOJS on Flow JS classes

This mostly rearranges JS into multiple files
A lot of code has been touched so that it now uses OOJS events
This will be improved upon in later iterations

Also, remove new/ level of directory hierarchy.

Change-Id: Iec45fd1e17475fc6719b7f8c4ad6c2b30ab6a7c9
Merge "Implement OOJS on Flow JS classes"