Performance enhancements for large pending requests

Old method did a lot of array shuffling, appending and
deleting.  This was very slow for large buffers, more time
was spent moving arrays than sending requests.

New method simply maintains a pointer to the current
position in the array and walks over it.  Minimal memory
management is done at the end of the entire request
Update Changelog
Add filter_facet to facets
Update Changelog