Handle array parameters in the query string

- change signature of AprTableToList to include callback function
  pointer
- add new table callback function called ParamsCallback, which combines
  parameters that are named like "foo[]" into a character vector

For example, query string of `foo[]=bar&foo[]=baz` gets parsed into
`list(foo=c('bar', 'baz'))`.