Added a convenience single_shrinker function for easier shrinking

A lot of the shrinking code uses `vec!()` and `.move_iter()`, which end up being not very
readable or efficient (they use an extra allocation). This adds a function similar to
`empty_shrinker` that allows you to easily create a shrinker with a single possible shrink,
which (in my opinion) is a lot cleaner.