Merging many changes

From Brandon Bare:
-- Moved AddFrameworks() and AddFrameworkDirs() to __init__.py so they are treated the same as first-class citizens like libraries and include directories.
-- Consolidated the code that determines the obj file paths.
-- Changed the obj file paths for raw source files (non-chunk, non-unity) to be output in a directory structure matching the source files.
-- Added  Objective-C/C++ support to the GCC toolchain
-- Consolidated the code in the GCC toolchain that adds the architecture flag to the compiler and linker command lines.
-- Removed the ability to set the sysroot on the GCC toolchain since, in most cases, it should be hardcoded to a specific path.
-- Moved the --no-as-needed, --start-group, and --end-group flags into functions that return their strings in the GCC toolchain.  When building for OSX and iOS, these functions return empty strings since those flags arent supported on those platforms.
-- Updated the shared library file extensions for be correct between Linux, Windows, and OSX (.so, .dll, .dylib, respectively).
-- Added a rough 1st pass of the iOS toolchain.
-- Added a temporary hack to prevent Objective-C/C++ files from chunking.
-- Added a function for determining if a file is a chunk inside a project.
-- Modified the MD5 generation for chunk names to include the file extensions.
-- Made updates in csbuild for iOS/OSX support and general fixes.
-- Standardized a majority of the member names
-- Added the ability to specify multiple architectures in the architecture decorator.
-- Added some frequently requested features in the Visual Studio project generator: source and header files are displayed in directory filters; there is now a regeneration project; preprocessor defines are now placed in each project.
-- Possibly fixed a bug where the visual studio project generator would sometimes overwrite files that weren't really out of date.
-- Added a helper enum for filling in the MSVC version.

From Jaedyn Draper:
-Added concept of "scope," similar to (but more powerful than) CMake's PUBLIC and INTERFACE directives
-Changed docstring format to reStructuredText to switch from ePyDoc to sphinx for api documentation