Add cbufp_map_at() interface, fix and refactor cbufp, vas_mgr, and valloc components

* Fixes a bug in the shared ring buffer size calculation.
* Refactors some of the memory-mapping code used in cbufp.
* Relocates the typedefs for cbuf_t and cbufp_t to the interface headers instead of the include/cbuf.h. This is necessary so that cbufp_t is visible within cbufp.c.
* Makes a small whitespace fix in cbuf_c.c that I encountered along the way.
* Refactors the vas_mgr_expand in preparation of sharing some of the logic with a new function.
* Refactors valloc_free to simplify the logic.
* Moves the calculation of ext_size in valloc_alloc out of a loop.
* Adds the cbufp_map_at and cbufp_unmap_at interface functions to support mapping a cbuf directly from one component into another's VAS.
* Adds valloc_alloc_at() to support allocating a region of virtual memory within a component at a specific virtual address.
* Adds vas_mgr_take() to support claiming a contiguous region of the VAS at a specific virtual address.

It occurred to me that refactoring the loop in this way might be limiting the compiler's ability to unroll it. I haven't looked at generated code to compare the difference though.