Add limit parameter to page()

Being able to set the limit and offset with the page() method makes it a bit easier to use as the operation is less order dependent.

Refs #4641