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}]
```
Looks good to me

Sent from my iPhone

> On Nov 26, 2014, at 4:49 PM, Maxim Vladimirsky <notifications@github.com> wrote:
> 
> In limit/tokenbucket/tokenlimiter.go:
> 
> >  }
> >  
> > -func NewTokenLimiterWithOptions(mapper limit.MapperFn, rate Rate, o Options) (*TokenLimiter, error) {
> > +// NewTokenLimiterEx constructs a `TokenLimiter` middleware instance
> > +func NewTokenLimiterEx(defaultBucketSpecs []TokenBucketSpec, capacity int, mapper limit.MapperFn, configMapper ConfigMapperFn, clock timetools.TimeProvider) (*TokenLimiter, error) {
> How about just New? It will be used tokenlimiter.New seems to fit the Go Code Review Comments better.
> 
> —
> Reply to this email directly or view it on GitHub.
>