Simplify by implementing the actual logic we want, not 2nd guessing.

We care about the case where we're invoked non-interactively (e.g. a cronjob or similar)
but without discovery data, as we need to fall back to default discovery.

However, if we already know that we're being run non-interactively (i.e. STDIN.tty? is false)
then we can safely call STDIN.eof? to determine if we have any discovery data to work with
(without blocking the tty - as there isn't one).

Thus we can both break if we're passed an empty array of JSON data (which is desireable), but
fall back to the default discovery method if we've not been passed anything.
Fix the error message if you pipe some data (e.g. echo | mco rpc ...) to be useful