Avoid memory allocation in rcu_dispose()

rcu_dispose() passes to rcu_defer() a lambda function which deletes the
given object. Unfortunately when an std::function is created from this
lambda, the existing std::function implmentation (in gcc) allocates memory.
This means that new/rcu_dispose will always be at least twice slower than
new/delete.

This patch tells gcc's standard library implementation that it is fine
to use the "small functor optimization" here, namely store the lamda
inside the std::function without allocating external storage.

On my machine, this patch shaves 37ns off rcu_dispose(). As a sanity check,
now, if I hack rcu_defer to run the function immediately, rcu_dispose() is
just as fast as delete(); Before this patch it was 3 times slower.

Signed-off-by: Nadav Har'El <nyh@cloudius-systems.com>
Signed-off-by: Pekka Enberg <penberg@cloudius-systems.com>