Set available patterns

You provide a large list of beautiful patterns. For my usecase I want to use just a subset of all available patterns. This PR makes it possible to reduce the available patterns as optional argument to ".generator".

BTW:
Is there a test suite available anywhere?

Cheers,
dg
Well, if they pass in 6 patterns for example, we need to pick from those. But we can't pick randomly because the pattern needs to be the same every time it's requested with the same parameters. 

I'm thinking we could still look at the SHA value at position 20, but we'll need to use the `map()` function to map that value to something between 0 and `opts[:patterns].length`