Add a virtual destructor for IRVisitor to prevent memory leaks if
a derived class with fields is destructed via the base class.
Add path handling to build_halide_h.cpp to allow execution from
a directory other than src for alternate build systems.
Moving using declarations for members of std namespace to consistently
be in a Halide controled namespace to avoid conflicts with global
names that may be introduced by non-standard build environments.
Add -Woverloaded-virtual warning and fix errors for visit methods being hidden.