fix #552 switching to Grunt 0.4.1. Fixes some issues on node.js 0.10.x.
refactor whitespace formatting
feat #445 leading tabs detection in the code

A grunt task is added to prevent checking in unformatted files
in the future. It's very simple now, just checks for leading
whitespace being a tab instead of a space.

Close #445.