libtracker-extract: Make it completely private

This library has some rough spots, mainly around:

1) Usefulness: The library is not specially useful outside of
   tracker. In the source tree we already have plenty of extract
   modules that handle most popular file formats. Future-wise, if
   a brand new file format earns popularity, we'll want it in the
   tracker tree, and not as an external module. So neither
   implementing minor third party out-of-tree modules nor offering
   the possibility to reimplement a type Tracker knows well is a
   compelling thing to support.

2) Maintainability: The API is highly inconsistent, hardly
   introspectable and with little forward-compatibility thinking.

So in short, libtracker-extract is something we want to keep under
the rug, only available to tracker-miner-fs and tracker-extract.
libtracker-miner: Turn thumbnailer into an object

TrackerMinerFS in libtracker-miner was already doing most of the
tracker_thumbnailer_* calls necessary. The only API required on
callers only was tracker_thumbnailer_init/shutdown(). So just
turn this into an object so all usage is kept private to
libtracker-miner, and we can remove these headers out of the
public.
libtracker-miner: hide media-art header

These calls to manipulate the media art queue are already
performed inside TrackerMinerFS, and there are no foreseeable
situations where a TrackerMinerFS implementation will need
to call these directly, so just move the code and header
to private land.
tracker-control: Avoid usage of TrackerCrawler

This can be easily replaced by a helper function that iterates
over a directory.
libtracker-miner: Avoid use of TrackerCrawler in TrackerMinerManager

This object just needs it to iterate over .desktop files, so use plain GIO there.
libtracker-miner: Move TrackerStorage to libtracker-common

This is used in a variety of places (tracker-writeback, TrackerMinerFiles,
and TrackerDecorator), but it doesn't make sense to have that exposed in
libtracker-miner, so move to libtracker-common, where it can be used in a
private manner.
libtracker-miner: Make TrackerCrawler private

This object can remain entirely private, as it is wrapped in quite more
convenient ways by TrackerMinerFS (ie. tracking of additions/removals,
file monitoring...), so turn it fully private.
tracker-writeback: Remove unneeded code using TrackerMinerManager

TrackerMinerManager isn't used here after all, so remove all code
using it.
libtracker-control: New separate library, just contains TrackerMinerManager

TrackerMinerManager has been moved from libtracker-miner, so it remains a library
to implement miners. libtracker-control will be of interest to anything that
attempts to track or control the state of running/available miners.
libtracker-miner: Add TrackerMinerOnline

This TrackerMiner is a simpler replacement for TrackerMinerWeb that
doesn't get into credentials handling. It handles network state,
emitting ::connected or ::disconnected on the way, and ensuring the
miner is paused/resumed as necessary when suitable networks come and
go, implementations of this miner can control this behavior through
the return value in the ::connected signal.
rss: Implement TrackerMinerOnline

This is more suitable than implementing TrackerMiner directly
libtracker-miner: Remove TrackerMinerWeb and helper objects

TrackerMinerWeb vmethods are very focused on the management of
credentials and capabilities, this is something that's been taken
over by gnome-online-accounts since this API was added, and the
lack of TrackerMinerWeb implementations in the wild seems to
hint it's not been as useful as when it was initially devised,
so farewell.
libtracker-miner: remove private namespace symbols from being exported
docs: Add missing TrackerDecorator type to .types
libtracker-miner: Add padding pointers to *Class structs

Will be useful for long term ABI compat.
tests: Fix build in libtracker-miner
libtracker-miner: Make sure we compile if we don't HAVE_NETWORK_MANAGER
Merge branch 'api-cleanup'