feat: add a new type QueryResult to use intead of List

QueryResult is a list with an extra property called `meta`. This property can be used by the backend to pass extra information to the client.

Closes #14