feat(contrib/ec2): use separate volume for /var/lib/docker

We've seen fewer performance issues when machines use a separate
volume for /var/lib/docker. This commit changes the AWS provision
script to automatically prepare and mount a separate volume for
Docker.

We have to touch `/etc/docker-volume-formatted` because the
user-data is applied on every reboot, and we don't want
the Docker graph getting destroyed.

Note that we use the device name `/dev/xvdf` irrespective
of the instance virtualization type (PV or HVM). This seems to be
the way the kernel maps the block device, and isn't necessarily
unusual - see http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-using-volumes.html

Amazon documentation suggests using the letter 'f' as the first name
of a non-root EBS-backed device: http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/block-device-mapping-concepts.html

I manually tested this on both PV and HVM instances and had no issues.
There is no change in UX other than the new requirement of installing
the PyYAML Python library.