B tracepoints

See #2406 

Changes from the PR by @prakashsurya:

* Implement `dprintf()` as a tracepoint.
* Implement two new `DTRACE_PROBE`'s
* Refactor patch stack and make it cstyle-compliant
* Address feedback from @behlendorf on #2406

One thing I'm concerned about is the 256 byte stack buffer used by `dprintf()`.  While short-lived this could potentially push stack usage over the limit.  I've seen messages as long as 202 bytes to this isn't an unreasonable size, but we may want to consider dynamic allocation if this turns out to be problematic.