break out some api-related functions into a module
update gruntfile: make jshint check tasks subdirs
fix: reinstate JSON url rewriting. this necessary function got lost in the process

code is being clarified through 'handler filters'. these wrap the regular callbacks, effectively injecting code that ensures some expectations (for example, HTTP success, JSON can parse OK), and using grunt to log errors if they occur. this means we can remove this repetitive boilerplate from the main code and concentrate on handling the success case
lint
forgot to update saveMedia

it's now only responsible for accepting and saving a list of S3 files. json rewriting + saving is done elsewhere
oops, had the composite handler filters inside-out
version bump to 0.0.12

restore local URL conversion when writing JSON files