Text field component enhancements

This brings the implementation of the text field component closer to the Polymer Paper elements version:

* Make the floating label color match the focused underline color when focused
* Implement the 'spill from point of interaction' effect when the field gains focus
* Implement the cursor block move & collapse animation when the field gains focus

I have a few general questions/thoughts:

* The material design specs specify pixel sizes very precisely. The styling in the Polymer Paper Elements components however seems to make more use of em rather than px-based units, presumably so that the controls still work at non-default sizes. I've changed some parts of the CSS to work more like the Polymer implementations. This has the upside that the components could work better at different font sizes. The downside is that it isn't so easy to verify that the implementation matches the material design specs just reading the code.
* What is the best way to allow clients to attach event handlers etc. to the input field in the same way they would if using <input> directly? Ideally it would be useful if clients could treat the component as an extension of the <input> field, similar to the Polymer `<paper-input>` control.
* What is the best way to support component-specific theming? eg. To set the label and focus colors. One approach might be to mirror the theming options provided by the corresponding Polymer component (eg. https://www.polymer-project.org/docs/elements/paper-elements.html#paper-input-decorator) but exposed via `props.theme`.
* Coding style - Do you have a preferred linter or tool and config for formatting code?