Add window.location.hash support

Changes:

- `_updateHash` function to update hash each time the gradient is updated (triggered by `_renderDisplay`).
- `_loadHash` function to load the current gradient if the hash matches a gradient (triggered by` _bootstrap`).

I didn't find a way to merge the files into `major.js`, so I just made the changes to the `Gradients.js` file.