PAGINATION_URL/PAGINATION_SAVE_AS implementation

allows the use of custom urls for pagination similar to *_URLS
more robust PAGINATION_(URL|SAVE_AS) support

- add base_name and number_seperator to context to give more flexibility
  when naming things
use six.string_types for python 3 compat
remove u prefix from string literal, using unicode_literals
Allow definition of pagination rules by page index.
Don't assume that PAGINATION_PATTERNS will always be present.
Use six.u instead of unicode.
Create new formatting context dict instead of using self.__dict__

Using self.__dict__ is fine, but when its mutated it changes the
object's state. Creating a new dict avoids needing to think about
that, and doesn't introduce Python 3 issues (ie, where self.number is
accidentally set to '').
Fall back to the default PAGINATION PATTERNS when none specified.
Adding basic documentation for PAGINATION_PATTERNS.
Merge pull request #979 from nyergler/pagination_conf

Support flexible pagination configuration