Detect good set of warning flags for C++ compiler

At least gcc's g++ does not like all warning flags that the C compiler
does, so try them separately. Use -Werror to get failures, as the wrong
flags only cause a warning.
Support extended fields for MP4 tags

Support the extended tags that are supported by TagLib, including total
track number, disc number (and total), composer, copyright and encoded
by.

https://bugzilla.gnome.org/show_bug.cgi?id=701506
Implement cover art support for MP4

Adds support for saving cover image into MP4 files, and show the images
tab for them as well. Add G_BEGIN_DECLS and G_END_DECLS in picture.h.

https://bugzilla.gnome.org/show_bug.cgi?id=701506
Support album artist in MP4 files

Use the atom directly, rather than going through the properties
convenience API.
Use C++ TagLib API for MP4 header information
Add GIO/TagLib compatibility layer

Create GIO based implementations of TagLib::IOStream, so TagLib can be used
over GIO. The implementation still lacks almost all error handling, but works
in normal situations.
Use GIO wrappers in mp4_tag.cc

Make mp4_tag.cc use GIO wrapper for reading and writing MP4 tags with
TagLib.
Use GIO wrappers in mp4_header.cc
Improve error handling in GIO/TagLib wrapper

Add some error checks and a method for getting the error to the
GIO/TagLib compatibility layer.
Add basic error reporting to mp4_tag.cc

Add some error reporting enabled by updates in GIO wrapper to
mp4_tag.cc.
Add basic error reporting to mp4_header.cc

Add some error reporting enabled by updates in GIO wrapper to
mp4_header.cc.
Remove auto pointer template

Additionally, unref the stream on destruction of GIO_InputStream, as
closing the stream is not sufficient.