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}]
```
I was naming fields/methods starting with a capital letter if they were supposed to be used outside of the class (e.g. TokenBucket.Consume is used in TokenBucketSet). But technically almost everything in this package is not intended for use outside of the package, and therefore should be lowercase named including TokenBucket, TokenBucketSpec structs themselves. But that naming seemed to me erase the line between class interface and implementation.

So should I go ahead and make everything that is not the package interface lowercase?