Avoid unnecessary dTHX
Basic section implementation

Includes APIs to start & end as well as a SectionGuard class that allows
auto-closing sections even when unwinding the stack in an exception.
Includes basic test. The API for reading this data is going to have to
be thought out better than this. Right now, any stack trace will contain
a reference to the main section-tracking hash as "active_sections".
Not horrible, I suppose.

Sections of the same name can nest and will be tracked by depth. But
that means you're basically left with deciding in application code
whether to care about this or not: One can manually implement semantic
differences between various levels of nesting by looking at the depth
that is in the active_sections hash. For example:

  { foo => 1, bar => 3 }

would mean that both the sections "foo" and "bar" are active, but "bar"
has been nested thrice. Usually, though, I suppose application code is
just going to care about whether it's within ANY "bar" section at all.