Suppressed unneccessary keys from filter query.

The client app now uses a stack of cascading viewports, each one contained by
the one before. These also yield an index of where to resume the 'keys' array,
and a 'prefix' (again), that states which items are inside this viewport.
The results are as follows:
i)  I am able to skip over a vast number of bboxes that where
    outside my viewport anyway.
ii) The slowly degenerating prefix/sorted composition approch from commit
    08a2fa635 is no longer used. This is good news since I have no idea how to
    remove items from prefix back to sorted anyway.
Removed 'unsorted' from, and simplified _list/bbox-filter.

If keys are always sorted anyway, there is no need the 'unsorted' query
parameter, and we don't need to binary-search-and-insert-sort the retrieved
items list (although that looked pretty cool). It might even absolve the
CouchDB crashes.
It does not behave well if limit==0. Still this is way nicer than before.
Ensured that _list/bbox-filter accepts limit==0 just in case.
Removed GeoJSON.size from _view/bbox-size.

This property is no longer required because _list/bbox-filter doesn't need to
sort items anymore.
Renamed _view/bbox-size -> _view/bbox

Since GeoJSON.size is no longer present.
Fixed coding errors from commit e465508c0c.
Re-used position from outer viewport for Array().indexOf().

Because there is no need to search the ignored half of the GeoJSON key list.
Avoided new viewport creation if viewport is not really restricted.

For instance if we zoom in and still have every item in our field of view, we
could as well go with bbox=[-Infinity,..]. Also we don't need to check those
useless viewports as a bonus.
Fixed some coding errors and re-phrased comments.
Reverted _list/bbox-filter to a slow working version.

Newlines and commas where still occasionally misplaced. The items object may
still grow too large, so the list needs to be used with special care and
rewritten as soon as possible.
Allowed new viewport to use the same index if prefix is shorter.
Fixed bug that prevented map to load geometry on initialization.
Rewrote one unnecessary indentation.
Limited posted keys if viewport has fewer items than requested.

This is nice because bbox-filter now doesn't have to go through the entire list
all the time. The reasoning however is simple:
As soon as there are less items reported to be in the viewport than the app has
actually asked for, it is safe to say that the filter has gone all-the-way
through the list - and this must be it. So as soon as we are in a nested
viewport, we may only specify the keys in prefix.
Fixed bad commits ab9f4cafd64, 9da113116bec and ad66fe70b9100.
Revised _list/bbox-filter to use function variables.

This is probably what they call 'enhanced algorithms' or something:
For instance for the bounding box check, I don't need to check if GeoJSON
contains bbox for each row; If it's in the first row, it's gonna be in all of
them.
Since function calls are expensive, I still could end up worse than before, but
it sure looks 'enhanced'!!!!