Add Node.js support

I was hoping to use Prism on Node.js - this PR adds Node support, without changing browser behaviour.  I've tried to keep the changes as small as possible:

* `self` is declared as a variable (equal to `window` in the browser, or `{}` in Node).
* `Prism` is declared as a variable in `prism-core.js` so that other files (like language definitions) can use it
* If `module.exports` is defined, then it is assigned to `Prism`.
* An extra check for `self.addEventListener`

I believe these should have no effect on a browser environment, and `test.html` still works for me, at least.

Obviously, most of the methods don't work in Node, but I don't see a great benefit in removing them.  Node usage:

```javascript
var Prism = require('prism');

var jsCode = 'var a = 1';
var html = Prism.highlight(jsCode, Prism.languages.javascript);
```

If you feel like it, it should be ready to just `npm publish`.