GET /files?filename=foo&filename=bar is now interesting

Requesting results for multiple files at once coalesces all cached
values for those files, and returns the result.

I implemented multi-filename-GET because I wanted to be able send a whole
directory to the service:

  find . -type f -exec curl -s -F filename={} -F file=@{} http://0:3000/files

and find out info about a collection of files:

  curl -s http://0:3000/files$(curl -s http://0:3000/files | \
    tr -d '[]"' | \
    tr ',' '&' | \
    sed 's/&/&filename=/g' | \
    sed 's/^/?filename=/' \
  )

...which does an $(inner curl) to get all filenames, mutate them from json into a
URL parameter list, and then does an outer-curl to fetch the aggregated results.

Drive-by:
  * test.sh --debug: doesn't run the perl script, and instead tells
    you to point your debugger to the running service, then waits
    for <enter>
  * FilenameInRequest() is now FilenamesInRequest(), note it may return
    multiples