Refactored core C++ functions from repo->pynja

Now make_static_lib, make_shared_lib, make_executable
are all part of the pynja package.

C++ toolchains now all derive from a common CppToolChain
which requires a 'targetWindows' flag in the constructor.
The flag is used to determine file naming conventions.