Add namespace for test suites and classes

This patch adds a namespace TestDetail to the program in order to help mitigate name collisions with user code. It also renames some of the internal variables used in the macros for the same reasons.