Added some logging functions.
Ported over the AresSwizzle class from dc03-savegames.

Minor changes:
- hash_map and hash_multimap replaced by std::unordered_map and std::unordered_multimap.
- Have the replaced functions return something meaningful.
- Added a call to Debug::Flush() in case the game terminates before the debug file is written.
- RegisterPointerForChange changed to take a reference to a pointer
AresByteStream stub ported over from dc03-savegames.

Minor changes:
- The class does not inherit from std::vector
- Read, Write, Load and Save have been omitted
- Added a typedef data_t, and a Size() method
- Initialized the out variables (needed for Length = 0)
Added two stub methods for loading and saving objects.
Save and Load return bool.
Added more logging for saving and loading extension objects.
Made some methods protected, added comments.
Two fixes to AnimTypeExt.

- Use a unique macro name
- Hook the second exit path in the Load method
Reworked how objects are remembered for loading and saving

- Made the static fields private
- Added the PrepareStream setter method
Block writing functions that manage their size by themselves.

When writing, the stream length is written to the target stream before the actual data.
When reading, the first bytes are interpreted as length, then the actual data of that length is read.
Ported over Read and Write from dc03-savegames, with changes.

- Read and Write are no longer templates and now only operate on byte pointers.
- Read and Write will not use copy assignment. The bytes are copied directly.
- Write does not use reserve(), because that could slow things down. The vector is now free to amortize the reallocations.
- Write cannot fail, and does no longer return a bool.
- Fix to getting the address to read from.
Ported over Load and Save from dc03-savegames, with changes.

- Load will always increase the offset, even if not successful. If an expected value could not be read, the following values are assumed to be faulty, too.
- Load and Save will get the address of the value, without calling overloaded operator&. (A better way would be to use std::addressof, but that would require C++11.)
- Load and Save now just call Read and Write.
- Save cannot fail and does not return a value.
Template Update 30: Renamed the typedefs.
Changed Ares::SendPDPlane.

- Takes Iterators instead of TypeLists
- Update for PickCellOnEdge
- Minor changes
Use Iterators for ParaDrops, part 1.
Use Iterators for ParaDrops, part 2.
Use Iterators for ParaDrops, part 3.
Added GetParaDropTypes and GetParaDropNum getters.
Converted ParaDropNum to NullableVector.
Converted ParaDrop to NullableVector, and renamed it.