Add tracing switches

@jamesrwhite

Incorporated your changes, renamed commands to `#always_trace!` and `#never_trace!`, and added more comprehensive specs.