core: fix tracepoints memory:allocate and memory:free

Link: https://github.com/GeneAssembly/biosal/issues/819
Signed-off-by: Sébastien Boisvert <boisvert@anl.gov>
memory_pool: add core_memory_pool_use_cache()

Link: https://github.com/GeneAssembly/biosal/issues/819
Signed-off-by: Sébastien Boisvert <boisvert@anl.gov>
genomics: configure memory pool to use cached allocation

Link: https://github.com/GeneAssembly/biosal/issues/819
Signed-off-by: Sébastien Boisvert <boisvert@anl.gov>
free_list: add function to check element size

Signed-off-by: Sébastien Boisvert <boisvert@anl.gov>
memory_block: add a block pointer to create linked lists

Signed-off-by: Sébastien Boisvert <boisvert@anl.gov>
core: add memory_cache structure

This is similar to the slab allocator concept, but without the
constructors and destructors.

With this, the size of allocations won't be stored before the pointer.
Indeed, the size is the same for all allocations performed in a given
cache.

For small allocations, this is a good thing.

Link: https://www.kernel.org/doc/gorman/html/understand/understand011.html
Link: http://en.wikipedia.org/wiki/Slab_allocation
Link: https://github.com/GeneAssembly/biosal/issues/819
Signed-off-by: Sébastien Boisvert <boisvert@anl.gov>