Handle all binary output formats.

* Use two arrays to list formats which will have string or binary
  output, respectively. Combine the two at instantiation time.
* Sort listing of format types.
* Separate validation logic into its own function
* Ensure `runWith` is
  - validating the 'from' and 'to' options
  - not ignoring 'to' options by exiting loop too soon when output is a
    binary format
  - not creating a separate temp file for binary output, nor cleaning it
    up. All output is returned as string, no sense in making a separate
    file with a specific extension.
* Remove similar logic from `convert` function and have it use `runWith`
Whitespace cleanup.

* Conform to PSR-2