adds support for variable declaration, has edge cases

A basic variable check is implemented. If the variable has been
declared before, a var is not inserted. However, this doesn't
take into account for function scope. This leads to the second
declaration to silently go global.
ex. in coffeescript: http://bit.ly/13OCDgF