Add support for all output modes (text, ucl, json, compactjson, yaml)

Object '.' refers to the root object

Support for specifying multiple files
Fix missing getopts
Update usage()
Don't output a spurious (null) when running in text mode
Implement nodepath for keys. when --keys is specified, the path to the
value is returned separated with an equals sign
Remove another item from the todo list