Added cachehandling to expose task to overcome platform issues

Targeting the issues

* #35 by caching the file. Using ```git sha1``` to check if the file has changed
* #39 by removing output reading from the grunt task we can eliminate platform errors caused by different line-endings on the various platforms/OSes
* #45 Should resolve the same issue as it seems to be the same as in #39

It will try to check if the cache file exists, if it doesn't exists it will try to call the grunt expose task creating the cache.

If the file exists it will read it and try to determine if the ````Gruntfile.js``` has changed by comparing the stored ```sha1``` with our new calculated ```sha1```.

When we have a _valid_ cachefile this task is super fast,