Update Gruntfile.js with better functionality

A few more grunt tasks were added:
- grunt-browser-sync (serve files on localhost so changes can be
immediately seen)
- grunt-imageoptim (lossless image compression)
- grunt-newer (only process files if they have been changed)

Run `grunt build` to compile everything
    `grunt serve` to open file in browser.
Compressed images

Looks like I missed a couple
Nicer box shadow for `.loading-region zoomedOut