Add "allow-functions" option (fixes #829)

This adds an `"allow-functions"` 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 #182.