Started breaking out sinks

Eventually the sinks will be in their own modules (it's convenient to
build them together now). The browser-oriented ones will be included in
the .min.js.