Fix passing stack_trace_class to constructor

Make the stack_trace attribute lazy and call it before BUILD.

Also call ->as_string on the stack trace so that the raw stack trace
gets filtered and the BUILD frame discarded, avoiding memory cycles on
the exception object.
Avoid infinitely-recursive stringification

Use new filter_frames_early option to Devel::StackTrace to ensure
our own frames are filtered out before stringification happens.
Disarm alarm after use
v0.200012

        - avoid memory leaks and infinite recursion when stringifying
          (thanks, Dagfinn Ilmari Mannsåker!)