it's weak_ref, not weaken...

It's always the little used features.
alias/exclude ::Stash::register_component() rather than wrap

This should hopefully avoid some potentially messy complications.

Also, make _zilla required!
add a couple real tests :)