Compress and cache server responses.

This uses npm/compression to gzip all outgoing messages >=1kb.

Files in the served video directory (as well as the indexes themselves)
have a max-age of 5 minutes, while bower resources last a week.

Also, the X-Powered-By header (which defaults to 'Express') is replaced
by a string denoting the server version, Express version, and node.js
version. (Example: 'FlipTheClassroom-server/1.1.0 Express/4.5.1
node.js/v0.10.28')