Remove heap allocations from WeightedCh3HashFunc's slow path
Remove heap allocations from WeightedCh3HashFunc's slow path

Summary: This diff removes unnecessary copies and reduces allocations from `WeightedCh3HashFunc`'s slow path. Instead of copying the original key for each slow path iteration, the copy is done once during the first iteration, then it is resized to restore it to the original key values. To reduce the number of allocations done by the `push_back`, we reserve the original key size, plus 2 to accommodate two extra digits. The extra padding 2 was chosen because the `retryCount` defaults to 32, so two extra digits will be appended to salted key by default.

Reviewed By: stuclar

Differential Revision: D28442414

fbshipit-source-id: 64b77c4b7b293e997ba391331e1af96e1551a07e

facebook/mcrouter,facebook/mcrouter,facebook/mcrouter,facebook/mcrouter