feat(contrib/ec2): add optional support for IAM instance profiles
ref(builder): use bash-style substitution

This is already in use at check-repos, which is a fancier way of
stripping the file extension from a string.
re-revert "ref(tests): switch to example-dockerfile-http app"

example-dockerfile-http has switched over to ubuntu:trusty for better
compatibility with apps:run (busybox does not ship with bash).

This reverts commit ebded177705e257d8227a836bade85331d56f8d7.
feat(registry): deis-cache for saving meta data

This improves the registry speed with remote stores and
the developer UX by removing frightening warnings

Fixes #1780, fixes #1794
fix(builder): delete images on destroy
fix(deisctl): properly resolve ~ in path

While `$HOME` is resolved properly in paths, `~` is not
and requires special handling.

I tested this with the following, on both bash and zsh:
```console
$ deisctl config platform set sshPrivateKey=$HOME/.ssh/deis
$ deisctl config platform set sshPrivateKey=~/.ssh/deis
$ deisctl config platform set sshPrivateKey=/Users/carmstrong/.ssh/deis
$ DEISCTL_UNITS=/Users/carmstrong/gocode/src/github.com/deis/deis/deisctl/units deisctl refresh-units
$ DEISCTL_UNITS=$HOME/gocode/src/github.com/deis/deis/deisctl/units deisctl refresh-units
$ DEISCTL_UNITS=~/gocode/src/github.com/deis/deis/deisctl/units deisctl refresh-units
```

fixes #2677
tests(utils): add unit tests for utils package
docs(hacking+README): clarify that deis CLI requires python 2.7
Merge pull request #2752 from carmstrong/fix-deisctl_tilde

fix(deisctl): properly resolve ~ in path
Merge pull request #2749 from bacongobbler/the-power-of-bash

ref(builder): use bash-style substitution
Merge pull request #1858 from johanneswuerbach/lru-cache

feat(registry): deis-cache for saving meta data
Merge pull request #2625 from sopel/support-iam-instance-profiles

feat(contrib/ec2): add optional support for IAM instance profiles
chore(store): remove redundant Makefile task
fix(Makefile): remove CLIENTS from release task

Both deis client and deisctl do not have release tasks.
Merge pull request #2765 from mboersma/deis-cli-py27

docs(hacking+README): clarify that deis CLI requires python 2.7
Merge pull request #2775 from ngpestelos/remove-redundant-makefile-task

chore(store): remove redundant Makefile task
Merge pull request #2747 from bacongobbler/cache-images

fix(builder): delete images on destroy
Merge pull request #2750 from bacongobbler/example-dockerfile-http

re-revert "ref(tests): switch to example-dockerfile-http app"
Merge pull request #2776 from ngpestelos/remove-clients-from-release

fix(Makefile): remove CLIENTS from release task
feat(pkg): add pkg time

This package is used to control how we utilize the time package across
the Deis Platform, including application logs, component logs, API
datetime structures, etc.