Reduce storage maximum arity to fit within Apply limits
Added compile-time assertion for function signatures to allow more meaningful assertion when passing functions of too high an arity