Better error messages for fn/defn w/o arglists

When (fn) or (defn) does not get an arglist as first/second parameter, emit a more descriptive error message, rather than an ugly traceback.

Fixes #716.