replace kriskowal/q with 50 LoC homebrew implementation, part of #51

As a result, it is no longer possible to chain promises
(then().then().then(etc.)), but that is actually not an issue for Isso.

The deferred/promise implementation is roughly based on
http://stackoverflow.com/a/17722683 and stackp/promisejs.
log 5xx errors

Also, fix console.log usage.
fix wrong logic when vote counter stays at zero (e.g. self-vote)
Merge branch 'remove-q-lib'