Add paginator helper

Unfinished and untested. Just to get the ball rolling.
Comments and suggestions are highly welcome.

* [x] Allow to set some options
* [x] Checks if order attribute is an accepted range
* [x] Take into account when `options[:end] > count`
* [x] Get data from request header
* [x] Parse request header
* [x] Allow to set order
* [x] Add tests
* [x] must set start and end later --> pagination with block

# How to use

In your Endpoint:

## If you want to return uuids in the Range header

```
Content-Range: id 01234567-89ab-cdef-0123-456789abcdef..01234567-89ab-cdef-0123-456789abcdef/400; max=200
```
```ruby
paginator(User.count) do |paginator|
  query =
    User.order(paginator[:sort_by])
      .limit(paginator[:args][:max])
      .offset(paginator[:first])
  If paginator.will_paginate?
    paginator[:first] = query.select(:uuid).first
    paginator[:last] = query.select(:uuid).last
    paginator[:next_first] = query.offset(...).select(:uuid).first
    paginator[:next_last] = query.offset(...).select(:uuid).last
  end
end
```

## If numbering the items is enough

```
Content-Range: id 0..199/400; max=200
```

```ruby
paginator = paginator(User.count)
query =
  User.order(paginator[:sort_by])
    .limit(paginator[:limit])
    .offset(paginator[:first])
```
*convenience