Running the tests on travis revealed that some compilers (or at least with some options) call the wrong struct constructor if there is more than one struct with the same name but differing definitions.
As part of putting the `bind` command code into its own module refactor how it parses its flags.