Fix loading Matroska index files on x64

OriginalPos is an unsigned integer of inconsistent size which can be
negative (due to being delta-coded), which makes the exact order of the
casts and manipulations very important.
Fix saving and loading audio indexes
Simplify the FPSDenominator calculation

Eliminates a rounding error in a specific 25 FPS sample file. Hopefully
does not introduce rounding errors for other samples.
Use memory-mapped IO for reading Matroska files

Time to index a 1 GB file.  All numbers best-of-five.

                        Old       New     Change

Windows, 5400 RPM USB 2.0 HDD:
Video Only, Cold:     1:33.117  1:09.264  -25.6%
Audio + Video, Cold:  1:50.105  1:20.715  -26.7%
Video Only, Warm:     0:11.138  0:06.131  -45.0%
Audio + Video, Warm:  0:28.501  0:18.377  -35.5%

OS X, SSD:
Video Only, Cold:     0:07.363  0:08.783  +19.2%
Audio + Video, Cold:  0:10.536  0:11.829  +12.3%
Video Only, Warm:     0:01.119  0:00.904  -19.2%
Audio + Video, Warm:  0:03.171  0:02.771  -12.6%

OS X, HDD:
Video Only, Cold:     0:06.773  0:06.632  -02.1%
Audio + Video, Cold:  0:09.460  0:07.905  -16.4%
Video Only, Warm:     0:01.118  0:00.837  -25.1%
Audio + Video, Warm:  0:05.999  0:02.778  -53.4%
Fix some clang warnings
Improve the compressibility of the index files a bit

While the space occupied on disk is utterly irrelevant, this speeds up
writing the index file a bit (as much as twice as fast for some Matroska
files).
Allow negative linesizes

libavcodec appears to use the convention of negative strides for images
stored bottom-to-top, so don't reject them when verifying that it
actually gave us data.

Closes #102.
Fix declaration/definition mismatch. Closes #147.
Fix all warnings with -Wall -Wextra
Fix a pile of -Weverything warnings
Don't keep a pointless reference to the index in AudioSource
Add travis config file
Improve a comment in MaybeReorderFrames
Trivially speed up SortByPTS
Fix some out-of-date bits in the API docs
Rename TFrameInfo to FrameInfo
Decouple FrameInfo from FFMS_FrameInfo and rework invisible frame handling
Extract a bunch of stuff from indexing.cpp
Move declarations of concrete indexer types out of indexing.h
Move declarations of concrete video sources out of videosource.h