Error handling for transaction queries

Neo4j manages errors differently when the query is executed under a
transaction: instead of returning a 400 Bad Request, it embeds the errors
as a JSON list within the result object (and returns 200 OK).

In order to manage (and throw a NeoException), the code has to partially
deserialize and see if the result contains a non-empty error list.