Implement fallback routing policy

The fallback routing policy is used when there are no routing modules
loaded. The fallback policy routes sink inputs to the default sink and
source outputs to the default source (at this point routing is only
implemented for sink inputs, though).

In order to make the fallback policy react to default sink changes,
the default sink and source handling had to be modified. Earlier
pa_core.default_sink was set only when the user had explicitly
configured a default sink, and when pa_core.default_sink was not set,
pa_namereg_get_default_sink() searched for the highest priority sink
in the system every time it was called. With that system it was not
possible to have a hook for notifying about default sink changes. Now
pa_core.default_sink is kept always set and always up-to-date, and the
priority logic in pa_namereg_get_default_sink() was removed (or rather
moved to pa_namereg_update_default_sink(), which is called when sinks
are created or removed).

The policy registration API was changed a bit, because earlier the API
assumed that policy implementations would always be provided by
modules, but now the fallback policy is implemented by the core.

The entry ordering in routing groups may change (in the fallback
policy case it changes when the default sink or source changes), which
may require rerouting. For this purpose a new function was added:
pa_router_group_update_target_ordering(). The underlying reordering
code is actually implemented in pa_sequence_sort(), which is a new
function too.