Changed setup API such that the following methods are used:

Setup<T>(char shortOption)
Setup<T>(string longOption)
Setup<T>(char shortOption, string longOption)

Some tests (e.g. null/empty short option) no longer required. Added tests
to prevent short option names of ':' and '='.

Internally we still use strings.