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
Since we say `@opts = DEFAULTS.merge(opts)` above, it seems `opts[:patterns]` will always have the defaults plus what is passed in and this will always be `true`.