Change bad_expected_type to use inheriting constructors
Add 'is_runpackable' to type traits (for use in the invoke runpack)
Add function traits and invoke with runtime unpacking to functional
Add test for functional component