Cleaned up make_*() encapsulation issues

Now make_shared_lib() etc. are only defined in repo/cpp.py; these
take a 'name' argument.
The corresponding functions in pynja/cpp.py that take an
'outputPath' arg now have an abs-suffix like make_shared_lib_abs().

Added a wrapper build script build.py.

CppProject.builtDir now has an extra path element of the project
class' name, so that two projects defined in the same source
directory get non-overlapping builtDirs.
'compress' build.ninja with ninja variables

Each project's projectDir and builtDir are defined as variables.
During task emit, these prefixes are tested for and replaced
with a variable reference.
The tests are imperfect (only current project's vars are checked)
but it still provides a decent amount of savings.

build.xlat_path() calls have not been propagated to all toolchains'
emit() implementations yet.
completed xlat_path() refactoring