Adds ability to register API boundaries.

This commit adds an ability to register boundaries with the Util
class. API boundaries are regexes that specify the point in the stack
that should be considered an entry into the api for tracing purposes.
Add apiCall field to Pipe, Tap, Scheme, and BaseOperation.

This commit adds an apiCall field to Pipe, Tap, Scheme, and
BaseOperation. This is the point called from the trace field.
Util.setDebugTrace is renamed to Util.setDebugTraceAndApiCall and
is updated to set both fields instead of just returning a String.
A new interface, Traceable, is created and applied to Pipe, Tap,
Scheme and BaseOperation to create a common point for documentation
and facilitate future code simplification.
Reduce code duplication in formatTrace methods.

The Util.formatTrace methods were all doing basically the same thing
with only minor changes in formatting. This commit adds a private
method that takes a formatter object and all the formatTrace methods
are updated to call it.