Use C++ for 'extern' Methods.

Having C++ integration but requiring external methods to have C linkage seems incorrect. Since MiniJavaC generates a C++ class definition, require that the external method be implemented as a C++ member function.

Name mangling easier since we now always use C++ linkage and invocation from MiniJava is easier since it can be called like any other method.
This requires MiniJavaC not emit the class virtual table is the first method is external since it will be generated by the C++ compiler, all methods must have global symbols to link with the C++ compiler's virtual table and to support calling up the class hierarchy, and don't allow clang to generate RTTI since we don't yet emit all the necessary data.
	src/code_gen.cpp

Update the Language Bindings test case to implement the external method in full C++ style.
	Test Cases/LanguageBindings/testcase3.cpp

Commit 7c61209e3b02ee2cd3963db15ba30a6a7a4a12fd changed the order of arguments but the name mangling code still thought 'this' was at the end. Now that we have to interface with external compilers we really need to follow the standard.
	src/Compiler/CodeGen/Platform_i386_OSX.cpp
Remove CodeGen Data from AST::Class.

We used to construct a class's virtual table during the validation phase and store the information in the AST, but that is not the correct place. See #9.
	src/Compiler/AST/Class.h
	src/type_check3.cpp
	src/minijava.cpp

Instead, move that to the Code Generation phase. This will most likely move again in the future but it's a much better place than the AST.
	src/code_gen.cpp