rough in new opts
cleanup of new opts
error out when not supplied with username or password when non-interactive
Add some verbosity into login errors
We don't get an ack from nodes to know they are running a function, so run a simple function 'test.ping' to find out which nodes in tgt are going to respond.
Once we know which nodes are targeted, run the fun against that list of nodes (local_async), and wait for them all to return

Also do some pre-parsing of tgt to ensure we are submitting them as intended
implement timeout
set return code based on (-f, --fail) fail_if_minions_dont_respond and our expected vs. returned list of minions
documentation cleanup
Removed short-opts

Although we're not re-creating the Salt CLI in this script, it's nice if
there's some commonality and to keep this real-estate available.
Removed conditional to guess the expr_form

This should be passed explicitly like in Salt.