Generate limit on subqueries
Reorganized / Renamed methods to be consistent

now all the helper methods have consistent names and are grouped
Added an outer limit option

This puts an order by and limit on the outside
Added ORDER BY to inner queries with LIMIT