Use promises at startup

Refactored the js code in index.html.tmpl and app.js to use promises
instead of the custom JobManager object.
Modify PluginInterface to use promises on server
Use promise version of PluginInterface on the client
Simplify the settings generator

settingsgenerator.js:
* getSettings' callback now passes an error object as its first argument
* generateSettings now returns a Promise

httphandler.js:
* serveSettings will now respond with HTTP 500 (Internal Server Error) if
    there is an error generating the settings object
Re-joining channels on re-connect
Triggering connection 'close' event fix
Keep hold of X lines from IRCd for connection error context
Show general IRC errors within the client
Macedonian translation #583
Update engine.io(-client) to 1.3.1
Update node-static from 0.7.3 to 0.7.4
Update uglify-js from 2.4.12 to 2.4.15
Update eventemitter2 from 0.4.13 to 0.4.14
Update ipaddr.js from 0.1.2 to 0.1.3
Update iconv-lite from 0.2.11 to 0.4.4
Update spdy from 1.19.1 to 1.28.1
Update po2json from 0.2.3 to 0.3.0
Update jQuery from 1.11.0 to 1.11.1
Update backbone from 1.0.0 to 1.1.2
Correctly reading nicks from an IRC message prefix when without ident@host