Injectable DOM properties

#140 was reported today which was something I was interested in fixing anyway. Turns out this is pretty easy.

During the course of this diff I noticed we didn't expose the id attribute; this is fixed. I use MUST_USE_PROPERTY per http://stackoverflow.com/questions/4851699/setting-the-id-attribute-of-an-input-element-dynamically-in-ie-alternative-for.

I think this internal refactoring is basically pure win. If you guys don't want to expose the API publicly yet to keep the surface area of the API small I can revert the second commit on this.

If accepted into the public API, I will document this. I think this is definitely a rough edge that people will run into. Also in the future we can reduce our byte size by making all the svg props optional.