New pagination

This is an improvement and fix on the current pagination. Currently the pagination doesn't work correctly when using startkey, endkey or any of the other query options. It also shows an incorrect value for how many documents are in the view query.

This patch is very large because pagination in Couchdb is quite complex and there are plenty of situations to cater for. This new pagination works quite differently to the previous way we had it working for a user. 

A user can set the number of documents they want to view on a page. This is not related to `limit` options in the query options - the limit option is an overall cap of how many documents to paginate too. A limit of `none` is possible and is the default. If the limit option is set to 50 and a user wants 10 docs per page, the would then be able to paginate 3 pages before hitting the end.

Another change is that the api url and browser url does not change when we paginate. That happens internally and hence the new addition of `urlParams` and `docParams`. This allows Fauxton to keep track of the parameters that the user sees and the parameters that the document needs to paginate.

The majority of this work is finding the right way to paginate given a variety of query options. This is quite tricky and we had to build up scenarios of different query options and then how to paginate with them.