make plugin more gulpfriendly

* No dependency on handlebars in plugin level
* Use through2 instead of through
* Allow to preprocess ast before compiling
It looks like [`grunt-contrib-handlebars` assumes `processAST` should always return the AST](https://github.com/gruntjs/grunt-contrib-handlebars/blob/master/tasks/handlebars.js#L100). Did you find cases where this did not happen?