fix(controller+client): utf-8 encode only string types
chore(utils): move encode to api/utils module
tests(controller): add api test for integer serialization/deserialization
fix(contrib/ec2): use conditional root DeviceName

Fixes #1788
fix(client): fix syntax error in config:list
fix(client): also encode keys which could be int
fix(controller): properly purge domain etcd keys on app deleteion
Merge pull request #1841 from ddollar/ec2-hvm

root DeviceName is conditional on paravirtualization type
Merge pull request #1872 from gabrtv/fix-domain-purge

fix(controller): properly purge domain etcd keys on app deletion
Merge pull request #1871 from gabrtv/fix-config-ints

Fix integer handling when encoding configuration
feat(*): Wrap deis run into a pty container

Removes requirements to connect directly to a machine
to receives the output and exit code from deis run