Introducing GraphDatabaseService.execute(...)

Enables executing cypher queries without having to keep track of an ExecutionEngine instance, instead the database keeps the ExecutionEngine internally.
Assuming that - as a future user of this API - I am included in _the rest of you_: wouldn't `hasResults() ==` **true** `&& hasNext() == false` mean that the query asked for rows, but that the query returned 0 rows? The name `hasResults` isn't that clear to me - not to distinguish whether result rows were asked for or not. Someting like `isResultsQuery` (a query expecting results) would be easier to understand, IMO. To me `hasResults` could both mean _expects results_ and _has result rows_, Though `isResultsQuery` sounds a bit weird being on a `Result` object and not a query. 
About consistency: this class is named `Result`, which contains _rows_. So shouldn't it be `hasRows` etc?
Combing all the above, how about something like `expectedRows` or `askedForRows` then?
(If this sort of input is unhelpful at this stage of development let please let me know and I'll leave you to it :-) ).