Fix extracting large installers with 32-bit builds

Or more precisely, installers with compressed chunks or output files
larger than std::streamsize.
Add more documentation to src/stream/chunk.hpp
Avoid boost::shared_ptr

If possible, use std::unique_ptr instead (or std::auto_ptr for C++03)
Add more documentation to src/stream/block.hpp
Add more documentation to src/stream/slice.hpp
Add more documentation to src/stream/lzma.hpp
Add more documentation to src/stream/exefilter.hpp
Add more documentation to src/stream/checksum.hpp
Fix references in Doxygen documentation
Improve file path conversions

Canonicalize paths and strip leading '..' segments so we don't write
anything outside the target directory.
Fix C++11 build
Add a command-line option for the output directory