Allow for uploading and cropping of profile pictures.
Merge master
Moved api.shared to api.crop and cleaned it up
Invalidating cached users before submitting to Cassandra
Dumping data on upload and crop.
Various JSDoc enhancements
Added tests for:
 * cropping/uploading pictures for another user/non-managed group
 * cropping without uploading
Slightly changed caching of picture URIs + added a testcase
Renamed api.crop.js to api.picture.js
Added error handlers to the amazon backend
Switched config.json to manifest.json to match the new widget structure.
Merge branch 'master' into profilepictures

* master:
  Switched config.json to manifest.json to match the new widget structure.
  remove unused async handler from timezone transport
Created IO.destroyStream utility and used in in the Amazon S3 backend
Created Image utility to crop and/or resize images.
Created TempFile utility and made sure to remove tempfiles on all possible errors.
Merge branch 'master' of github.com:sakaiproject/Hilary

* 'master' of github.com:sakaiproject/Hilary:
  fix error handling
  clean up io tests
  add tests for util.io copy and move
Merge branch 'master' into profilepictures

* master:
  fix error handling
  clean up io tests
  add tests for util.io copy and move
Merged sakaiproject/master
Merge branch 'master' into profilepictures

* master:
  Added login id validation
  Implement check for login id existence
  Minor cleanup
  Changed URL to all lower case
  Changed output to manifest aggregator
  Path fix
  Switched to manifest.json
Added tenantAlias to all the signature methods.
Added a utility method that sets a picture on a principal object.
Expanded on the group picture test.
Added some documentation to the unit tests.
Merge branch 'master' of github.com:sakaiproject/Hilary

* 'master' of github.com:sakaiproject/Hilary: (28 commits)
  (Search) Merge validation, self-review, TODOs
  Removing oae-ui, it does not exist right now.
  (Search) Fixing logical merge conflicts (change share to shareContent)
  (Search) Adding telemetryUrl to the search end-points.
  (Search) Documenting API events.
  (Search) Self-review changes, minor formatting and documentation updates; Increased unit tests coverage on MQ tests.
  (Search) Tightening up API documentation. tenantId => tenantAlias. Still self-review is needed.
  (Search) Implemented memberships search
  (Search) Adding members search. Split members/memberships fields into children docs to support partial updates. Split index event into resource / members / memberships
  (Search) Implemented proper tenant separation and user-scrubbing (not actually applicable until members/memberships search)
  Added more tests for library search and general search
  (Search) Frameworked the binding of search types to REST endpoints, that is all automatic; Wrote visibility tests for library search.
  (Search) Added library search. Next up is unit tests.
  (Search) Move elasticsearch.js to internal directory.
  (Search / RabbitMQ) Implemeneted RabbitMQ Tasks
  Adding message-queue functionality
  (Search) Fixing logical merge conflict
  Fix logic merge conflicts with ui branch.
  Logical merge conflict fix.
  (Search) Review fixes
  ...
Merge master
Switched from 256x256 to 128x128 profile pictures