Merge pull request #4 from epmatsw/master

Use native javascript trim() when available
Performance optimisation

Based on the efforts by @epmatsw. The native trim() function is now used with a fallback for non-supporting browsers.
Improve documentation and contribution guidelines

Include documentation on the trim() polyfill and extend documentation
on other functions.
Include a note on coding conventions.
The check to see if the given variable is a valid element can be
massively simplified.
Include number of characters (with spaces)

Additionally to having the number of real characters, Countable now
includes the full number of characters (including spaces) as well.
Add components.json

Like all the cool kids, right?
Explain ways of installation

Bower's awesome, by the way.