Added an optional scope argument to expr_uses_var(s).

This allows the user to pass in a scope of exprs bound to variables, e.g. from let expressions. The visitor will dive into the bound expressions, whenever a variable in scope is encountered. I need this functionality in the linear solver and in specialize_branched_loops, so I added it to the generic method.
New function needs a doxgyen comment too. If you want to use the same comment for both functions, put // @{ and // @} around the two functions as is done elsewhere. Also, while you're here, add EXPORT qualifiers to the functions, so that these can be used outside of Halide.dll on windows. Forgetting these briefly broke the windows build in the LinearSolver merge.