Smart style injection

(Creating this PR to centralize discussion--no problem if we don't end up merging all of it in.)

This commit avoids re-injecting styles by maintaining two registries: one that contains _all_ RCSS style objects, and one that contains the hashes of those that have already been injected. It also contains a `syncClasses` function that can be called on the client-side to fill up the "already injected" registry with styles that may have been passed down from the server.

A few things to note:

1. I added an `injectStyle` function that takes a `styleId` and injects only that style (if it hasn't been injected).
2. To avoid adding a new `<style>` tag per injection, every call to `injectAll` and `injectStyle` uses the same tag, which has a special `_rcss` ID. This may have to be changed as part of #10... but it makes it much easier to detect which styles were sent down by the server. (CC @raynos: did you want the `syncClasses` logic to check _every_ stylesheet? Not a difficult change, but I wasn't sure...)
3. This is rebased onto #34, so only the last few commits should be relevant. Sorry if that's confusing!