function: allocate with new if the small function storage is too small
function: add noexcept where possible; favor final over override
function: add missing pointer initialization
function: test small function optimization
function: generalize small function strategies to work with any storage size
function: small functor storage size is a policy parameter