This function will reclaim memory by freeing as many chunks as needed to free BytesToFree. returns the amount of bytes we were actually able to free. It's important to note that this will block any chunk requests.