Flux responsive

Woah - more pull requests. I've fluxified this -- haven't done before so please let me know if I've done something wrong! This should make it a lot easier to break out extra functionality and listeners, it should allow users to easily opt-in/out of listeners as they need and it should allow for making all of the things responsive. 

I really like the cleanliness of it, but I'd love to get feedback!
`expect("future ricky").not.to.be.ok()` ;)