Safely generate names.

During the analysis pass, collect all identifiers in the function.
When generating names, do not generate a name that clashes with an
existing identifier.

Use a separate name counter per base name.

Run the analysis on a per-function instead of per-file basis.
Merge branch 'master' into name-generation
Shortened analysis for ConditionalExpression.
Merge pull request #9 from kmillikin/name-generation

Safely generate names.
Do not use the name '_' for ignored parameters.

Generate a fresh name with base 'x'.  '_' might clash with a name in
scope.
Merge pull request #10 from kmillikin/name-generation

Do not use the name '_' for ignored parameters.