Make tokenlimiter capable of getting rates from a request header

Ratelimiting middleware can be configured to retrieve Rates to be applied to requests. To do that one needs to pass a **ConfigMapper** function in an **Options** struct to the **NewTokenLimiterFromOptions**. The function should map an http request to a JSON string that configures token buckets for it. There can be configured several token buckets for a request. A request will be allowed by the middleware if all token bucket allow its consumption. The JSON token bucket config should look like this:
```json
[{"PeriodSec": 1, "Average": 10, "Burst": 20},
 {"PeriodSec": 60, "Average": 100}]
```
No need to fit it to 80 symbols, Go does not have this guideline:

https://golang.org/doc/effective_go.html

> Line length
> Go has no line length limit. Don't worry about overflowing a punched card. If a line feels too long, wrap it and indent > with an extra tab.


I found this helpful as well:

https://code.google.com/p/go-wiki/wiki/CodeReviewComments