CSS class names are a function of the style object

Resolves #32.

I used `sha1` to mirror the way we've done this in the past, but I think that we should replace it with either a fast, non-cryptographically secure hash (like [murmur](https://www.npmjs.org/package/murmur)), or even a checksum algorithm (like Adler-32--which React uses to compare client- and server-side markup (granted, collisions there are less important than they are here)--or CRC32). Thoughts?

Another thing to note: before, if we'd already seen `styleObj` in the global registry, we didn't return anything, which isn't really expected behaviour. Now, we return a style object regardless of whether or not it's in the registry (with a shallow clone).