forceltr: Optimisation and clean up

* Use 'html' instead of html:first. ":first" is a proprietary jQuery selector
  which means it initialised all of Sizzle (:first-child would be better).
  But in this case it doesn't make sense as there can only be one <html>.

* Chain jQuery methods $foo.bar().quux() instead of $foo.bar(); $foo.quux();

* Use .attr() instead of .each() + attr() + attr().
  .attr() already iterated over "all" elements in the collection and
  supports a callback to allow dynamically setting the new value based on
  the current value.

  This saves a loop and 2 jQuery calls (no extra $() and no
  extra attr() for reading/setting).

* Use '[dir]' instead of '*[dir]'

* Also swap body.sitedir-rtl and body.rtl
  add/removeClass supports space-separated values (regardless of their order).

* Pass Initialize function by reference to $() instead of creating another
  function just to call one function.
Validate jshintrc and add Travis CI support.

Moved all jshint options to the .jshintrc file.

This way editors with jshint-plugins pick it up, and we can also
use node-jshint on the command line to lint all files at once.

I ran it once locally to make sure it passes and fixed the
errors it gave:
* Single quotes
* Various unused variables
* Undefined variable (console.log -> window.console.log ).
  Condition used different identifier than actual code.

Adding a configuration file for Travis CI. This will:
* automatically install the repo in a VM server at Travis, run
  the tests and update the badge in the README – on every commit.
* listen for pull requests and run tests for that as well (saves
  you from having to leave comments like "use single quotes" or
  "syntax error!")
Convert line breaks from CR (enforced Windows) to native.

Show diff with `git show -w` or append `?w=1` on GitHub to show
diff without the end-of-line whitespace changes.
Merge pull request #13 from Krinkle/linefeed

Optimizations, CI support, line-break fixes.