Added C++ Templates and changed naming convention of pascal templates to match c++. The namespace of the two environments have been updated to not conflict.