Restructure the Docopt API (builder pattern).

Since the `docopt!` macro likely won't be available in the stable
channel of Rust once 1.0 hits (because it is a syntax extension), I've
spent some time improving the standard API. Namely, the `Config` struct
is gone, and the "builder" pattern is used in its place. Similarly, the
`FlagParser` trait is gone too. Everything is now routed through the
main `Docopt` type.

Code that uses the macro like this:

  docopt!(Args, "...")
  let args: Args = FlagParser::parse().unwrap_or_else(|e| e.exit());

Should be rewritten as:

  docopt!(Args, "...")
  let args: Args = Args::docopt().decode().unwrap_or_else(|e| e.exit());

If you want to change the configuration (like add a version string) or
use an argv other than `std::os::args()`, then call the appropriate
methods before decoding:

  docopt!(Args, "...")
  let args: Args = Args::docopt()
                        .version(Some("1.2.3".to_string()))
                        .argv(vec!["prog", "-x", "5"].into_iter())
                        .decode()
                        .unwrap_or_else(|e| e.exit());

Similar code changes are necessary if you are using plain Docopt without
the macro.

Also, #27 is fixed.

[breaking-change]
Remove the `regex!` macro.

... and replace it with a `regex!` macro. :P

Closes #36.

Also, add documentation for every exported item.
Ignore scratch things.
Skip the first argument in argv when getting it from std::os::args().
Fix #13.
Silence the `non_snake_case` warning.

Fixes #20.
Add `cp` example with manual struct definition.
Add example of `docopt!` macro to crate docs.
Update the README with latest changes.

Also, demphasize the `docopt!` macro.