no-use-before-define.js respects function declarations

Previously the no-use-before-define.js rule would throw a warning when you reference a named function declaration (i.e. named function defined in Program scope or Function scope, but not in a block or other expression).

This closes issues #302 && #306 

More info on the difference between named Function Declarations and named Function Expressions:

http://kangax.github.io/nfe/