Restructure code, make it more modular

- Move arg parsing code from main() to a dedicated function
- Parse an argv[] array in each do_*_action() function
- Move mapping-related code entirely out of do_*_action() functions
- Use new `action_type` struct to control action
- Use return and exit() in a more consistent manner

Minor stuff:

- Use `bool` type where useful
- Remove now-unnecessary action_t enum
- Add exprintf() function for printing an error message & exiting
- Update remembyte_help()
- Build a buffer from 0x00-0xFF in do_map_action(), don't map directly
- Add error checking to hit2int()
Allow multiple input hex strings.

More than one hex value can now be passed when the input action is
selected

- Clean up code, clarify intent w/ better code, consolidate & delete
  old code
- Do less looping. Where possible, combine loop actions for clarity.
- Remove unnecessary action code enum
Add support for reading hex strings from STDIN

Add do_stdin_action() function that reads from STDIN and then passes
to do_input_action().