Fix bug with StreamController sync

StreamControllers used to fire synchronously but now have an optional
sync property in the constructor. Must only use sync StreamControllers
for our events.
Preparing for first release