load and use transforms before linting source

With inspiration from the discussion in #346 I implemented transform functions in a pretty generic way.

Transform modules/function can be specified as either a string or an array of strings in the coffeelint.json, package.json, or cli flags. They are modules loaded via these string should be a function that takes a single `source` arg, and returns a modified version of that source.

Order matters if multiple transforms are used, and it is preserved here. Modules listed via cli flags are given precedence and are loaded in the order they are defined, followed by the transforms in the config file.

Multiple transform modules are handled in optimist by specifying the `--transform` flag multiple times:
```sh
coffeelint --transform module-one --transform module-two file.coffee
```

I have included tests, but I wasn't sure where to put docs. Could you point me in the right direction?