Modify string builder to return array and add `compile`.

This is so that we can better examine the query. Instead of having:
~~~
q=foo&q=bar
~~~

We'd have:
~~~php
array(
 array(
  'key' => 'q',
  'value' => 'foo',
 ),
 array(
  'key' => 'q',
  'value' => 'baar',
 ),
)
~~~