Don't add a tracked lock to the tracking table until it fails to be acquired
Use weak references to tracked locks to reduce memory usage
Reduce GC pressure:
  Replace various uses of JSVariable in the static analyzer data with strings, since we only use their names anyway.
  Stop allocating a unique SpecialIdentifiers per-function.

Bump version number since it's been a while.
Reduce number of indirect variables allocated during translation