Commit of Mass Destruction! See full commit message.

*C++11 redesign - removes all 3rd-party dependencies.*
*NB: Currently untested on MSVC.*

Almost entirely header-only; still deciding whether this is a worthwhile approach (most stuff will likely stay header-side due to rampant templatism).
Changed code style and file naming (mainly for readability concerns):

* Non-backend namespaces are upper CamelCase
* Both member functions and non-member functions are lowercase underscored
* Non-functional utility structs, primitives, and SL/STL typedefs are generally lowercase underscored (e.g. `string_traits`, `char16`, `char32`, and so on)
* SL/STL naming is mirrored where appropriate (generally when deriving from or operating with the SL/STL)
* Files are named after their most significant part

Groupified documentation; attempted to coax the half-wit inbred demon-donkey that is Doxygen onto the decidedly vexatious tightrope.
Reworked premake scripts:

* Removed 'install' cruft
* Moved to static-library build
* Removed `RELEASE` define when building release
* Generalized Visual Studio options
* Added C++11 parameters

Reworked some configuration stuff:

* Added compiler and processor model detection
* Added ifdef-able and equatable definitions for system, model, and compiler
* Added class helper macros `DUCT_DISALLOW_COPY_AND_ASSIGN` and `DUCT_DISALLOW_ALL_CONSTRUCTION`
* Added `DUCT_FUNC_NAME` and `DUCT_FUNC_SIG`
* Renamed a bunch of stuff

Moved all debug stuff to its header; added variadic variants; uppercased and prefixed all debug macros with `DUCT_`; *user warning*: changed parameter order.
Redesigned variable framework: contracted all Variable classes into one; simplified operations.
Added and reworked Unicode encoding utilities from branch `stl`:

* `encode()` and `decode()` functions will now indicate whether input contained an incomplete sequence
* Added some convenience functions (`required_first()`, `required_first_whole()`, `required()`, `prev()`, `toOther<fromU>()`)

Added endian utilities.
Removed Stream stuff and replaced with SL iostream helper functions and classes (under `duct::IO::`):

* Classes `basic_mem_istreambuf`, `basic_mem_ostreambuf`, and `basic_mem_iostreambuf` to use with raw memory
* Class `StreamContext` for stream I/O with dynamic encoding and endian properties
* `read()` and `write()` functions for raw data
* `read_arithmetic()`, `read_arithmetic_array()`, `write_arithmetic()`, and `write_arithmetic_array()` functions for arithmetic values
* `read_char()`, `write_char()`, `read_string()` and `write_string()` functions for characters strings (with Unicode support)

Redesigned classes `CharacterRange`, `CharacterSet`, `CharBuf`, `Token`, `Parser`, and `ParserHandler`.
Bunch of stuff is in purgatory, awaiting cleansing; others:

* Namespace `FileSystem` is gone for good (riddance)
* Class `Archive` is bonemeal (unused, served little purpose)
* Argument handling/parsing is out for now (needs a redesign)
* Class `GArray` and the helper stuff for ICU have been nuked from orbit
Added `-pedantic` for Linurx; made it happy.
Added non-debug assertions; more Variable implementation.  Documentation pedanticism.

Put a bunch of stuff (mostly methods) into documentation groups; consolidated docs for EncodingUtils; various doc corrections; pedanticism.
Added non-debug assertion macros; renamed original DUCT_ASSERT macros to DUCT_DEBUG_ASSERT.
Added capacity constructor to CharBuf.
Added method size() to CharacterSet; added iterator typedefs.
Added default constructor for Token; made dtor virtual.
Removed "VARTYPE_" prefix from names in detail::get_vartype_name().
Further collections implementating in Variable:

* Added iterator typedefs
* Added begin(), cbegin(), end(), and cend()
* Added push_back() and emplace_back()
* Made morph(T const) into morph(T const&) (minor potential performance gain; morph shouldn't be used that much, and we don't wanna be copying string values around like crazy)
* Added non-templated rvalue morph() for string values; added rvalue set() for string values
* Added comparison methods: equals(), equals_value(), compare(), compare_value()
* Renamed get_string_ref_const() to get_string_cref()
* Added non-templated return-value get_as_str() for convenience
* Added assertions for children field access and properties

Moved common Variable test code to `tests/var/common.inl`; added collection test code.
Ported Template; corrected some mistakes.  Documentation pedanticism; header reordering.

More documentation pedanticism; switched from auto-linker '#' to '%'.
Reordered header inclusion (by weight/fundamentalism).
Added missing `explicit` to CharBuf's capacity ctor.
Added enum VariableMasks for other variable type groups.
Added rvalue Variable::set_name() variant; added empty(); added morph() variants for simultaneously switching to a collection type and assigning the children collection.
Made a lot of Variable methods chainable (returning *this); renamed set() to assign(); added discard_children parameter for type-only morph(); switched force_set on morph() methods to be true by default.
Ported initial Template class from mainline.
Now entirely header-based; moved code; cleansing.

Now entirely header-based; moved code to `duct/` for easy copying; removed root build scripts; updated `tests/build.sh` to build VS 2010 project files.
Removed old dependencies; removed old entries in `tests/.gitignore`; removed old test stuff.
Changed header inclusion to be relative to header directory; moved .inl files to `duct/impl/`.
Updated README; updated Doxyfile and added documentation build script.
Index documentation; trimmed license section from headers; pedanticism.

Added index page documentation; properly excluded *.inl and `duct/impl/`; switched DOT font to Helvetica (Doxygen 1.7.6.1 default).
Moved around doc sections in headers; trimmed extraneous license section from all headers (links to index page).
Added License section to README.
Added Docs folder to Sublime Text project file.
Implemented ScriptParser; added VariableUtils; ctor optimizations; pedanticism.

Documentation corrections and pedanticism.
Removed some extraneous debug messages.
Corrected formatting failure checkery in CharBuf::to_arithmetic(); added u8string-returning to_string() override.
Changed rvalue-ref parameters in constructors and methods for classes Template and Variable to by-value, std::move()ing where appropriate (compiler will optimize).
Fixed string-value Variable constructor (was `u8string` instead of `detail::var_config::string_type`); made operator=() return *this; changed field types to use detail::var_config types instead of VARTYPE determiner.
Added Variable methods is_type() and non-const get_children(); reduced morph() complexity, now returns *this; renamed get_string_cref() to get_string_ref().
Added VariableUtils; added convert_typed() methods.
Added some more character constants for ScriptParser.
Added Token method is_type().
Removed class ParserHandler; moved appropriate methods into class Parser; renamed some methods.
Corrected column stepping; now using m_stream->good() instead of m_stream->eof() in character gettery.
Implemented ScriptParser with updated spec.
Distilled memory streaming classes, added seeking; added size().  Pedanticism all 'round.

Documentation pedanticism.
Pedantic standard header ordering; removed some unused header inclusions; using std:: prefix on mem* calls.
Consolidated memory streambuf classes into one class (duct::IO::basic_memstreambuf); added seeking capabilities.
Added memory stream classes (wrapping basic_memstreambuf).
Added duct::IO::size() utility function.
Updated ScriptParser test code.
Oops, StreamContext operation methods should be const.

Made duct::IO::StreamContext read and write methods const.
Unambiguated read calls in StreamContext.
Added custom STL allocator support; 32-bit compat; pedanticism.

Documentation pedanticism.
Added STL class configuration for custom allocators.
Moved utils' char_size and BUFFER_SIZE constexpr constants into anonymous enums to make 32-bit compilation happy.
Fixed variadic debug messages for 32-bit compilation.
Moved class fields to between typedefs and constructors.
Made Clang happy; corrected comparison direction in IO::read_arithmetic_array().
Corrected DUCT_PLATFORM_SYSTEM_* defines (defines were still using the old scheme).
Corrected convert_typed(); updated escape utils.  Bucket of other things.

Added typedef detail::var_config::name_type and corrected use of this type.
Corrected string value comparison in the VariableUtils::convert_typed() functions.
Added copy-other IO::StreamContext::set_properties().
Moved initialization of Parser::m_stream_ctx to ctors, added get_stream_context().
Added IO::StreamContext initialization ctors to ScriptParser; updated test.
Changed ScriptParser doc-group ("parser") to "ductScript".
Added sequence variants for the find() methods on CharacterRange and CharacterSet; added matches().
Added StringUtils::unit_occurances().
Updated StringUtils escape utility functions (they are now sane); added test.
ScriptParser::throwex() now takes an rvalue directly instead of explicitly taking an rvalue reference (copy elision should do its job).

Pedanticism:

* General documentation pedanticism.
* Renamed template parameter EncodingUtils::_spec to spec_.
* Aggregate string construction in explicit CharacterSet::CharacterSet(char const* str).
* Changed Token::Token(int type) to Token::Token(int const type).
* Removed virtual from trivial Parser methods (likely will not be overridden).
* Inlined some methods in CharacterRange and CharacterSet.
* Constified s_sv_* variables in VariableUtils.
* Removed padding in g_utf8_trailing.
* Moved constructor restrictors for various classes into a private region (Doxygen was going a tad bonkers with them in protected regions).
Corrected return value for UTF-32 IO::write_char(), added repition; template fixes.

Added max_units to EncodingUtils.
Corrected return value in UTF-32 specialization of wchar_impl<,>::write_char().
Added repetition to IO::write_char(); updated IO::StreamContext::write_char().
Renamed StringUtils::unit_occurances() to unit_occurrences(); reversed declaration order.
Added clear option to StringUtils::escape_string(), corrected encoding-sequence skipping logic; reversed declaration order.
Renamed and reordered sequence find() and sequence matches() methods in CharacterRange and CharacterSet (template parameter resolution isn't cool enough to figure it out); corrected return type for CharacterRange::matches().
Implemented class ScriptWriter; added test.
Tidied README; fixed splitting issue in docs.

Tidied the README up a pinch.
Fixed splitting issue with details section on doc groups (*shakes fist at Doxygen*).
Added Clang opts to build scripts.