Return correct HTTP status code: 429 Too Many Requests

HTTP status code 403 is usually returned when a resource is permanently forbidden (e.g. file system access, invalid/missing client certificate).

For rate limiting, send status code 429 (see RFC6585: https://tools.ietf.org/html/rfc6585#section-4).
Update tests (HTTP status code: 429)
Add 'Retry-After' header, update tests
Minor cleanup on the pull request.
- Fix the value of Retry-After
- Add new FailTooManyRequests instead of changing FailForbidden
- Don’t pass nextValidRequestTime, since you can just call nextValidRequestDate.getTime();
Move MemcachedStore out into its own module.
Merge branch 'fhemberger-patch-1'