Unlink and untrack tag in free func of MPEG and FLAC File (#14)

This was not done before because of the erroneous assumption that tag()
returned the same object as e.g. ID3v2Tag(). But of course it does not,
it's a separate object which is the union of multiple tags.

Thus it also needs to be unlinked and untracked when freeing MPEG::File
or FLAC::File. Otherwise when a new C++ object happens to get the same
pointer address as an old one, it is looked up in the tracked objects
and finds the old Ruby object (because the tracking entry is still
there). Because the underlying C++ object of the old Ruby object has
been freed, madness ensues.
Regenerate SWIG wrappers (#14)

SWIG from SVN trunk revision 13840 was used.
Add building section to contributing
Update TagLib of binary gem for Windows to 1.8
Update CHANGES for 0.5.2
Bump version to 0.5.2
Fix docs to use File.open instead of File.new with block

Thanks to @aaronmoodie for noticing.
Bump bundler dependency to ~> 1.2.0 to fix travis build
Fix yard warnings: @param tag has unknown parameter name
add wrapping for TagLib::ID3v2::Header.
Regenerate SWIG wrappers using swig 2.0.9
Also make swig look in /usr/local/include for headers
First test and scaffolding for MP4
Ugly fix to let swig look in /usr/local/include
Add MP4 test data
Test for basic tag information
Add a basic free function for MP4::File
Add first MP4 tag writing test
Add mp4-create to clean task
Add tests for MP4 audio properties