title: Manually limiting Graql query results iterator
body: <p>If I take a simple query, such as <code>match $x isa dog; limit 5; get;</code> then no matter how many dogs are stored in Grakn, I get 5 results back. This is fine, but what if I don't know how many dogs I want when I make the query and want to limit the number I retrieve later on in my code?</p>
  
  <p>Here's my idea using the Python client:</p>
  
  <pre><code>import grakn
  client = grakn.Grakn(uri="localhost:48555")
  session = client.session(keyspace="dogs_keyspace")
  tx = session.transaction(grakn.TxType.WRITE)
  
  results = tx.query('match $x isa dog; get;')  # I don't limit now, so I can do it later
  </code></pre>
  
  <p><code>results</code> is an iterator, so I can't do this:</p>
  
  <pre><code>limited_results = list(results)[:5]
  </code></pre>
  
  <p>because if I do then all dogs will be put into the list, and then I'll take the first 5, which is really inefficient if I have 1,000,000 dogs in the knowledge graph.</p>
  
  <p>But I can say:</p>
  
  <pre><code>limited_results = list(itertools.islice(results, 5))
  </code></pre>
  
  <p>and I should get just the first 5 dogs without touching the other 999,995 dogs.</p>
  
  <p>But my question is: is there any reason this approach would be slower than providing the <code>limit 5</code> in the query like <code>match $x isa dog; limit 5; get;</code>?</p>