Add "nofunc" option (fixes #829)

This adds a `"nofunc"` option to the `no-use-before-define` rule that allows a
named function definition to be used before the location that it is defined.

This change was proposed in #829.
Merge pull request #828 from conradz/define-functions

Optionally allow function statements to be used before they are defined (fixes #829)