Add shrinkByTakingHead method

When user requests n-colour palette but the smallest palette added with
addPalette (or addPalettes) is m-colour one (where n < m), n colours
across the palette will be returned.  For example:
    var ex = palette.Scheme('ex');
    ex.addPalette(['000000', 'bcbcbc', 'ffffff']);
    var pal = ex(2);
    // pal == ['000000', 'ffffff']

This works for palettes where the distance between colours is
correlated to distance in the palette array, which is true in gradients
such as the one above.

This commit adds shrinkByTakingHead methods which allows this feature
to be turned off and first n colours will be taken instead.  For
example:
    var ex = palette.Scheme('ex');
    ex.addPalette(['000000', '00ff00, '0000ff']);
    var pal = ex(2);
    // pal == ['000000', '0000ff']
    ex.shrinkByTakingHead(true);
    pal = ex(2);
    // pal == ['000000', '00ff00']