- Created _utils.OrderedSet() - a set which will keep all items in the same order they were inserted in
- Changed all sets to OrderedSets
- Fixed a missing space in the gcc toolchain
- Fixed AddStaticLibraries() and AddSharedLibraries() having incorrect behavior on gcc and android toolchains, and being ignored entirely on the darwin toolchain
- Added logic to ensure order of libraries - when linking, a library marked as a dependency of another library is always guaranteed to show up in the libraries list after the library that depends on it, unless there is a circular dependency, in which case luck of the draw. This should actually make it feasible to use EnableStrictOrdering() for the linux gcc toolchain again; previously the libraries ended up in undefined order and that setting was impossible to use.
- Added a unit test to ensure strict ordering. It lists linux libraries, but will still work on Windows as it exits before the library verification process.
- Also fixed paths in the default debug and release targets not properly being fixed up and actually outputting to a folder named {project.activeToolchainName}-{project.outputArchitecture}-{project.targetName}