Draft implementation of changes proposed by Whisk:

 - The `onSuggest` hook is implemented as recommended by Whisk.

   Unit tests are provided in `specs/suggest-spec.js`

 - The `customiseCookie` function is implemented as an `onSave` hook.
   This can either return a customised version of the cookie data to save,
   or return void to leave the cookie data unaltered.

   Unit tests are provided in `specs/cookie-spec.js`

 - The `skipChance` option has been replaced by a new option, `target`.
   This is a function that returns `true` to target the user with the relevant
   test or `false` to skip the test.

   `skipChance` can be reimplemented using `target` as follows:

       var skipChance = 0.75; // or whatever

       var target = function() {
         return Math.random() >= skipChance; // note the use of >= instead of <
       }

    Unit tests are provided in `specs/skip-spec.js`
Suggestions from Noel: rename onSuggest and onSave to beforeSuggest and beforeSave; move callback settings into their own object.
Merge wip-target into master