Removed smart pointers from public headers

In response to the discussion in #213, I have repelled all smart pointers from TagLib's public headers. ```tsmartptr.h``` has been removed from the installation package. We can still use them in .cpp files, they will no longer affect the public interface though.
All the switches in ```taglib_config.h``` have been moved to ```config.h```. I think that we can remove it at some point.