doc: add better description for initial dev setup

If a developer hadn't use such a setup before, it is a little hard
to setup a development environment. This change adds more explicit
steps to setup everything.
refactor: grunt configuration

* split up configuration into modules
* clean coding style
add eslint to enforce consistent coding style

coding style should be consistant in a project. Using tools like eslint
will help enforcing the style all contributors agreed on.