Breaks the granulation out of the main loop, and changes our start-stop method.  Controls should be in place for responding to input change, just need to add the part where we detect the input change.
Merge branch 'separateloop' into develop