Instead of using LLVM's not.cpp, implement not in the internal Lit
shell as a builtin. This allows creating test suites that use the
internal Lit shell without depending on llvm/utils/not, which in
turn depends on the LLVM support libraries.
This work is done in the context of trying to move the libc++ test
suite to the internal Lit shell -- the libc++ test suite currently
doesn't depend on the LLVM support libraries, and it would be ideal
to keep it that way.
Nit: I don't like having args.pop(0) + ".py" here. I think it makes the code harder to read due to args.pop(0) both returning a value but also having a side-effect.