Multi-makefile performance improvements, Include() function

-Improved performance of multi-makefile projects (using jmake.call()) -
decreased time between calls of each makefile
-Added jmake.Include() to allow putting shared code in a single parent
file
Small fix, followup to last checkin.

Also, checking in the setup file I've been using for a while...
Coding style improvements, removed some dead code, subdirectory specification
Change name to csbuild

Changed name to csbuild
Also removed shlex from detection of file changes
Small bug fixes
Bake library paths into executable

Prevents end result from needing to have LD_LIBRARY_PATH set before
running when linking shared libraries, as long as the libraries remain
in the same location after compilation that they were in when the
executable was linked.
Complete rework of entire project, change to MIT license
Python3 support, better encapsulation, function to disable builtin targets
See extended description

-Added ability to specify different compilers for C and C++ files
-Precompile C headers and C++ headers separately
	include C headers with C files, C++ headers with C++ files
	Requires specifying which headers are C headers
-Separate standards for C and C++
-Ability to specify static and debug runtimes, and to force 32 or 64 bit
builds
-reinstated some timers that accidentally got commented out
-Improved method of interacting with compiler model
See description

-Changed globalDict to settings
-Fixed some bugs
Some work to move toward 1.0 release

-Added toolchains, you can now specify settings on a per-toolchain basis
-Cleaned up the code a little, a lot still left to do there
-Fixed some bugs
-Windows support (Thanks, Brandon Bare)
Fixed some issues

- Fixed a runtime error in threaded_build due to a misspelled member.
- Fixed check_libraries() looking in project for library dependencies.
- Fixed the subsystem argument for the MSVC linker and added the ability
to configure it on a per-project basis.
- Added the ability for the MSVC toolchain to generate static libraries.
See description

- csbuild.Output() now takes a third argument -
csbuild.ProjectType.Application, csbuild.ProjectType.SharedLibrary, or
csbuild.ProjectType.StaticLibrary
- csbuild.Shared() and csbuild.Static() no longer exist
- Added csbuild.SharedLibraries() to specify libraries that must be
linked dynamically
- Moved WarnFlags() to the gcc toolchain
- Removed Flags, renamed ExtraFlags to CompilerFlags
- Removed DisableAutoMake() and EnableAutoMake(), these no longer make
sense with the new architecture
- Changed ExtraFlags and CompilerFlags to take multiple arguments (one
per flag)
- Moved CppStandard() and CStandard() to the gcc toolchain
- Moved DebugRuntime() and ReleaseRuntime() to the msvc toolchain
- Enabled csbuild.Toolchain() to act on multiple toolchains - i.e.,
csbuild.Toolchain("msvc", "gcc").EnableWarningsAsErrors()
- Added default output extensions based on output type, these should no
longer be specified as part of csbuild.Output(). To override the default
extension, use csbuild.Extension()
- Better handling of the active toolchain setting
- Fixed some bugs with library verification
Merge branch 'master' of https://github.com/ShadauxCat/csbuild

Conflicts:
	csbuild/_utils.py
	csbuild/toolchain_msvc.py
Why this needs to happen, I don't know. Merging AGAIN.

Conflicts:
	csbuild/__init__.py
	csbuild/_utils.py
	csbuild/projectSettings.py
	csbuild/toolchain.py
	csbuild/toolchain_gcc.py
	csbuild/toolchain_msvc.py