image upload api endpoint

Allows images to be uploaded over the API and saves them to the local
filesystem. Some faff with dates and formats in order to work round
issues with mongoose and elasticsearch not going the right thing.

Fixes #214
attach extra properties to the image

e.g. source or notes