add jshint configuration

the configuration tries to enforce as much as possible from the
airbnb/javascript style guide.

it is not yet enforced as part of the build in the package.json because there
are a lot of warnings and we should decide on all the options beforehand