Rewrote the logic for main conversion of input to output types.
Parsing input, converting input to output and handling output, are now seperate tasks so we can handle conversions more generically rather than tons of special-cases.
Every possible conversion of input to output should now be handled, this should fix issue #2.
Update README.md with new options (private-key / private-key-wif).
Fix examples to show usage of new options and "--output-type all" output.
Change base58/hex encoding/decoding functions to return the number of bytes of output data.
Lots of extra error handling and sanity checking.
Add simple self-test script to check various cases which have been problematic in the past.