Create data directory if it doesn't exist

This makes the script runnable out-of-the-box from a git-clone.
Add more logging
Skip already downloaded avatars
Script to sample random avatars
Address quantization bug when writing images

I assumed that the principal components produced by RandomizedPCA had values in
(0..1).  This assumption was incorrect and led to gray colors in the eigenfaces
being swamped out to full-black or full-white when written to disk using
skimage.io.imsave. Switching to matplotlib.image.imsave fixes this problem.

Reported by @PetterS:
- https://github.com/c-w/github-data-challenge-2014/commit/049487e#commitcomment-8585362
- https://github.com/c-w/github-data-challenge-2014/commit/049487e#commitcomment-8605289
Remove unnecessary dependency on skimage
Make eigenface file-names more montage-friendly
Subtract mean-face from all eigenfaces

This was omitted in the first version of this visualization meaning that the
visualization showed the eigenvectors of the GitHub user avatar data-set, not
the eigenfaces.

Reported by @PetterS:
- https://github.com/c-w/github-data-challenge-2014/commit/049487e#commitcomment-8604035
Add mean-face to visualization

Reported by @PetterS:
- https://github.com/c-w/github-data-challenge-2014/commit/049487e#commitcomment-8638752
Use eigenface file-name as montage label
Make sorting more robust
Update ReadMe with new file naming convention
Update ReadMe with new data-set size
Delete old eigenfaces before creating new ones
Fix script for new file-naming convention
Re-generate eigenfaces
Add interpretation out-of-date warning

TODO:
- Generate eigenfaces for a bigger data-set
- Rewrite interpretation