limit/skip use params, refactored query clauses slightly

Both `skip` and `limit` should use params, so this fixes that. These are used `first` and `last`, so it'll give every server a little boost.

I also did some refactoring in QueryClauses, replacing `map` with `map!`, using string interpolation instead of concatenation, `strip!` instead of `strip`, `gsub!` instead of `gsub`, etc,... wherever possible. My tests show a slight decrease in object creation, so it should result in a tiny (probably imperceptible) performance increase.