hash functions for file or dir stamping

This PR provides a few foundation functions for [this card](https://trello.com/c/TdhMqr6R/157-flickr-express-yui-shifter-hash-files-to-support-granular-releases).

This branch has one file per commit, so each file can be cherry-picked. I expect that only a subset will end up being used, depending on integration. There are two approaches:

1. post-process artifacts in build dir when Shifter finishes with `hash-rename-dirs.js`
  - either [loader.js#L294](https://github.com/yahoo/express-yui/blob/master/lib/loader.js#L294)
  - or [shifter.js#L274](https://github.com/yahoo/express-yui/blob/master/lib/shifter.js#L274).
2. get hash on a file-per-file basis with `hashfile.js` or `hashgit.js`

Let me know if I can or need to rework these for integration into express-yui, or whether they should go in to Shifter as originally suggested (I think this belongs here, for now).

To do:
- [ ] simplify function parameters to use defaults?
- [ ] make renaming function in hash-rename-dirs.js user-configurable