Add a CommunicatorMenu type (for FlightDeck)

This type of menu is able to communicate with the Commander server (via
http requests) to push/retrieve data. All menus should inherit from this
so that they can perform their required communication through this class.

It uses class vars to track the connection, since ruby class vars remain
constant across inheritance trees (unlike stuff defined on the eigenclass).
Make other menu types inherit from CommunicatorMenu

Since they'll all need to talk to Commander at some point.
FloghtDeck::Console should honor custom config options.

For this, we introduce an opts hash that can be passed to the c'tor for
the Console object. Custom config options can be passed to the console via
this Hash.

This patch also introduces an :exit_on_error flag (passed via config hash)
that is used to tell the console to quit on the first error it encounters.
This is particularly useful for debugging (when we don't want the console
to loop and reprompt infinitely).
FlightDeck::Runner detects test mode...

... via an env variable (FLIGHDECK_MODE=test) and starts the console
with :exit_on_error=true, so that the console will exit early.
Console should verify in/out streams are IO objs.
Fix quality-check errors.
FqdnController should return valid JSON in get requests.
'Get' on interfaes endpoint should return valid JSON.

'Get' all ifaces returns array of names.
'Get' single iface (by name) returns a single interface repr.