docopt! macro can now make struct public and deriving other things.

The new syntax for the macro now looks something like this:

    docopt!([pub] ident [deriving [ident]...],
            USAGE STRING LITERAL
            [, [ident: type]...])

The syntax itself does not introduce any breaking changes, but
all created structs used to automatically derive `Show` and `Decodable`.
Now they only derive `Decodable` (which is necessary for automatic
decoding).

If your code previously relied on an `Args` struct satisfying `Show`,
then change this:

    docopt!(Args, ...)

to this:

    docopt!(Args deriving Show, ...)

Fixes #25.

[breaking-change]
version bump to 0.6.5