Revert "remove use of resp.json()"

This reverts commit 845245647dd039ad1bf7f1a4daa03db301421d80.

resp.json() is a tiny bit smarter than raw json.loads(), so we're
either introducing bugs, or reinventing the wheel.
Specify minimum required requests version

As a replacement for 845245647dd039ad1bf7f1a4daa03db301421d80, require
newer version of requests so that it gets upgraded automatically.
Parse some more of API faults, raise specific exceptions
Shut down VMs cleanly when possible
Use OCI methods for ORDB power on/off/restart

Instead of duplicating clean shutdown support, simply fold the methods
into one set.
Allow names instead of numeric IDs

OCIs, OVSes, OPNs etc may now be specified using their names (if unique)
instead of ids.

Help texts need updating but this calls for another refactor
The cli.OCI_Template method never took this parameter
Basic PyCharm-assisted cleanup

Lots of PEP8 stuff, basically nothing else

See diff with --color-words
Small Printer cleanup

PEP8 and removal of braindead str(foo.__class__) comparisons
Move Swift-related functions to Cli

They have no business being in the Printer. Also, make the output a little
more informative.
fix crash when printing non-ascii characters

some commands crashed when the locale was not set
and there was a non-ascii character in the output.
fix OCI TemplateInfo
add Template namespace

move template methods to separate namespace,
support template origins in Template List
cleanup
add more fields to Template List
enable bash autocompletions if argcomplete is insatalled
describe bash autocompletions in README
list all templates by default
move locale fix from printer to oktawave-cli
use shlex to tokenize command in -i mode