re-arrange / refactor basic wrapping code

move source / includes into subdirectories, fixup the wrapper generating script,
massage the wrapped_tracer API.

Signed-off-by: Jeremy C. Andrus <jeremya@cs.columbia.edu>
Measure stack memory usage for each C backtrace

NOTE: This only applies to backtraces done with the unwind API.

A new log entry will be written in form:
    BT:STACKMEM:1234:
where '1234' is in bytes, and indicates that the previous backtrace used 1234
bytes of stack before invoking the traced function.

Signed-off-by: Jeremy C. Andrus <jeremya@cs.columbia.edu>
major refactor: support return value interposition

This is a major (an messy - sorry!) commit that adds the ability to completely
interpose on an API call while still logging. The basic concept is to keep the
function return value(s) in a small bit of TLS memory which is accessed by a
generic return function.

Currently this only supports 32-bit Android functions, but could easily be
extended to support other platforms / bit-widths.

Signed-off-by: Jeremy C. Andrus <jeremya@cs.columbia.edu>