Fixes #53 - Better Command Line Parsing: options can be supplied in any order

The following are equivalent and run the build process:

    $ ./php-build <definition> <prefix> --pear --ini <env>
    $ ./php-build <definition> <prefix> --ini <env> --pear

    $ ./php-build --ini <env> <definition> <prefix> --pear
    $ ./php-build -i <env>    <definition> <prefix> --pear
    $ ./php-build -i <env>    <definition> --pear <prefix>

Displays usage and exits

    $ ./php-build # no arguments
    $ ./php-build --help
    $ ./php-build -h

Displays version and exits

    $ ./php-build --version
    $ ./php-build -v

Lists available definitions and exits

    $ ./php-build --definitions

Prints the error msg "$0: definition is required"
displays usage
exits with status 1

    $ ./php-build --foobar
    $ ./php-build --
    $ ./php-build "" ""
    $ ./php-build --pear # even though a valid switch, it's missing the
                         # definition and prefix arguments

Prints the error msg "$0: prefix is required"
displays usage
exits with status 1

    $ ./php-build def
    $ ./php-build def ""

Prints the error msg "$0: missing argument for '--ini'"
displays usage
exits with status 1

    $ ./php-build --ini

Prints the error msg "$0: unknown option '-'"
displays usage
exits with status 1

    $ ./php-build -

Prints the error msg "$0: unknown option '-j'"
displays usage
exits with status 1

    $ ./php-build -j

Prints the error msg "$0: unknown argument 'foobar'"
displays usage
exits with status 1

    $ ./php-build <definition> <prefix> foobar

Prints the error msg "$0: unknown option '--foobar'"
displays usage
exits with status 1

    $ ./php-build <definition> <prefix> --foobar
Update and tidy usage message