[wip] Avatars

Still a work in progress.

Status:

- [x] `GET /v1/avatar`
- [x] `GET /v1/avatars`
- [x] `POST /v1/avatar`
- [x] `POST /v1/avatar/upload`
- [x] image processing worker to resize images
    - [x] worker server
    - [x] computer cluster with gm
    - [x] upload to s3
- [x] put processed images on s3 public bucket
- [ ] domain for s3 public bucket
- [ ] fxa-dev integration
- [ ] docs
    - [x] docs/API.md
    - [ ] docs/DESIGN.md
- [ ] tests
    - [x] tests with img.local driver
    - [ ] tests with img.aws driver

fixes #29 
I'm a bit lost. I may delete JSHint and see what ESLint reports. Maybe we found some weird case, or possibly have some conflicting rules.

Further I get into this, the more I suspect that the `browser: true,` rule in our JSHint isn't doing what we want.
For example, this is my output on
```
$ grunt jshint
Running "jshint:app" (jshint) task

lib/img/aws.js
  line 38  col 19  'name' is not defined.

✖ 1 problem

Warning: Task "jshint:app" failed. Use --force to continue.

Aborted due to warnings.


Execution Time (2014-08-22 07:38:13 UTC)
loading tasks     1s  ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 54%
jshint:app     879ms  ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 46%
Total 1.9s
```

Not sure if the conflict is because we're setting `browser: true` is because the Window object contains a [`Window.name`](https://developer.mozilla.org/en-US/docs/Web/API/Window.name) property. Not even an `"use strict;"` had an affect on the error.