[LIBS] Support more types of MEMPOOLs

This patch makes MEMPOOL APIs more flexible to support three
types of MEMPOOLs:
1. RAW  - Pool of fixed sized entities over RAW/Device memory such as SRAM
2. RAM  - Pool of fixed sized entities over RAM pages
3. HEAP - Pool of fixed sized entities over Heap

The patch also adds following new MEMPOOL APIs:
mempool_raw_create()
mempool_ram_create()
mempool_heap_create()
mempool_check_ptr()
mempool_get_type()
mempool_total_entities()
mempool_free_entities()

Signed-off-by: Anup Patel <anup@brainfault.org>
Merge remote-tracking branch 'upstream/master' into A20