Added LiftRules.funcNameGenerator which controls the logic of S.formFuncName.

Just as before, TestMode gets different logic until names are generated
when S._disableTestFuncNames is true.
Merge pull request #1506 from japgolly/liftrule_for_funcname_gen

Added LiftRules.funcNameGenerator which controls the logic of S.formFuncName

Introduce a funcNameGenerator volatile var in LiftRules that points to a function that
generates a function name when called. Defaults to S.generateTestFuncName in
test mode, S.generateFuncName otherwise, and these have the same implementations
as the previous implementations for test and other modes.