timer_task: use external lock

timer_task has an internal mutex lock which protects various timer_task
operations. This patch changes the lock to a reference to an external
lock. This way, instead of doing recursive locking, we can share the lock
with serial_timer_task's mutex lock.

tests/tst-async.c is modified to use the new locking scheme.

Signed-off-by: Asias He <asias@cloudius-systems.com>
mempool: remove contention inside unfill_page_buffer()

This change reduces page buffer pressure caused by virtio-net
allocations, showign up as contention inside unfill_page_buffer() and
refill_page_buffer(). The virtio-net subsystem allocates pages on one
CPU which are then scattered across all other CPUs and freed to their
per-CPU buffers. To mitigate that, this change enables caching of
pages used by virtio-net.
ci