Restore hash

Restore hash functionality in builder. (fixes #169)
Restore visual behaviour  when selecting modules. (fixes #171)

Ok, this went a big pull request.

Basically it:
- redirects `core/5jhj546oh54uhyfld98` to `core/builder/5jhj546oh54uhyfld98` - same for More.
- restores the colour difference between chosen module and dependency
- adds back the hash save/load functionality
- adds some files under `tests/database/` which are usable for testing this and eventually future specs. (Maybe a fallback to those files should be added for when running the site locally/in development) 
- adds a link with the new hash (when the checkbox asking for it is checked)

Thank you @timwienk for help on this

The idea was that you'd only need to call `load` and `save`, and don't need to "manually" hash anything anywhere. Just call `load` to get a list of packages if the hash exists, and just call `save` to get a hash returned if it's saved (or already exists).