Using a tbb queue to back the queue implementations.

Gives a pretty nice speed boost (3x it seems).
Fixing WAITING behaviour.

Executor now takes care of setting the task state to waiting from
transition_to_waiting.
Adding closure chaining, improves perf_mutex.
Specify newer version of ffi library to link against.
Fixing space leak in final chained closure.
Adding ignores for profiling generated data.

This should cover the output of valgrind and its subtools.
Pulling out spinning and atomic operations.

They were unnecessary and lead to extra overhead.
Combining allocations in closure to a single one.

Freeing the closure also degrades to a single free: performance win.
Adding ctags directive to Makefile.
Removing ffi_cif field from the closure.

Reduces memory footprint, and is allocated now just on the stack in the
closure_apply routine.
Whitespace cleanup.
Enable closure chaining for queries.
Adding wait_for_available to interface.
Ignoring a few generated files.
Fixing bug by setting last_was_function to false in lock.
Recycling same future queue for function return values.
First version of query direct context switching.
Fixing waiting bug, removing future queue.
Dirty hack to specialize the priv_queue closure.

This means that it doesn't have to go through libffi, because
we know exactly what the function being called is.

This saves an ffi_call invocation on queries, bringing it from
2 to 1.
Adding condition variable benchmark.