Use done() instead of client.end()
Move error handling to top of function
Return 500 errors that are JSON encapsulated
This results in a 4x speedup vs. using client.end(),
as when we use the connection pool, we should only call
done() so that the connections get returned. Closing them
is very costly since they will need to be reopened.