Enforce callable Node function when size_in!=0

Fixes #305.

Also added a fix for a problem where if the `output` callable happens to raise a `TypeError`, then you get a confusing error message that says ".. takes _X_ argument(s), ... expected to take _X_ argument(s)". This happened to me more than once. In general, the practice of handling a general exception from an unknown function should be avoided unless the assumption is self-evident. This is much safer.