cbufp and cstub refactor

Make cbuf and cbufp more similar
* Change cbuf_free from taking void* to cbuf_t
* Add tmem indicator to cbuf_t

Refactor cstub macros
* Fix bug of not preserving registers around sysenter
* Eliminate dead code
* Simplify interface by offering three basic macros:
** CSTUB_FN() to declare a function that makes an invocation
** CSTUB_INVOKE() for a regular invocation
** CSTUB_INVOKE_3RET() for an invocation that gets 3 return values
* Add doc in cstub.h
* Rewrite interface/torrent/stubs/c_stub.c to use the new macros.

Tested with:
* unit_cbuf.sh
* unit_torrent.sh

OK, it looks like I did move the check to __cbuf_alloc_meta_inconsistent() down a few lines to after the cbuf_alloc_desc gets resolved for a transient/scoped cbuf. Note that the check was not being called if d was NULL, so the cbufp code-path was not going through the check anyways.