Format code consistently, add STYLE.md

First part of #5.

Code style is as [Felix's Node.js Style Guide](http://nodeguide.com/style.html), with a few [amendments and additions](https://github.com/passcod/node-style-guide). It is also passed through [JS Hint](http://www.jshint.com/docs/). A number of style points are not respected yet, like variable naming, function length, nesting depth limitations, etc — these require more thorough and less systematic changes.

If you're writing code to be merged in this repo, please follow these. If you wish to argue for or against specific style points, please do so. This pull request will remain open for at least 3 days to allow proper visibility.

## JSHint

[Travis-CI](http://travis-ci.org/) runs JSHint over the entire `lib/` directory. 

Options used:

```
node:     true    Code is running inside of the Node runtime environment
curly:    true    Always put curly braces around blocks in loops and conditionals
eqeqeq:   true    Prohibits the use of == and != in favor of === and !==
immed:    true    Prohibits the use of immediate function invocations without parens
indent:   2       Two spaces for indentation
latedef:  true    Prohibits the use of a variable before it was defined
noarg:    true    Prohibits the use of arguments.caller and arguments.callee
noempty:  true    Warns when you have an empty block in your code
nonew:    true    Prohibits the use of constructor functions for side-effects
plusplus: true    Prohibits the use of unary increment and decrement operators
quotmark: single  Enforces the consistency of quotation marks
undef:    true    Prohibits the use of explicitly undeclared variables
unused:   true    Warns when you define and never use your variables
trailing: true    Makes it an error to leave a trailing whitespace in your code
maxlen:   80      Line length
```

`/*global escape*/` is also needed in `twitter.js` as `node: true`
doesn't whitelist it.