libcommon: One MapInfoParser can now be used to read multiple definition sources

Also applied PIMPL plus some cleanup.