Adds a 'move to random value' button

This also involves doing manual change notifications for KVO since the
setter for `value` calls the `setValue:animated:` API method. We now fire
the KVO notifications in this method instead.