MB-10273 new compaction daemon that schedules kv and view compactions

... independently

not implemented:
1. view compaction inhibition
2. support of non-parallel view/kv compaction

Change-Id: Ibb8518d688a5a58312cdd589c2924358ac70cfca
Reviewed-on: http://review.couchbase.org/39310
Reviewed-by: Aliaksey Artamonau <aliaksiej.artamonau@gmail.com>
Tested-by: Aliaksey Artamonau <aliaksiej.artamonau@gmail.com>
MB-10273 make sure that scheduled non-parallel view compaction doesn't

... happen during the kv compaction

Change-Id: Ie2a1dc82ceda8cac3cdb9e026645be1cb2c322e8
Reviewed-on: http://review.couchbase.org/39311
Reviewed-by: Aliaksey Artamonau <aliaksiej.artamonau@gmail.com>
Tested-by: Aliaksey Artamonau <aliaksiej.artamonau@gmail.com>
MB-10273 inhibit and uninhibit views compaction

on inhibit:
- if views for given bucket are being compacted => abort the compaction
- don't let new compactors for this buckets views to start while the
  the bucket is being inhibited

on uninhibit:
- wait till currently running index compaction finishes
- then run compaction for all undexes of paused bucket
- block the call until the compaction is not finished

Change-Id: I7179428b6ee6304f9cb16f82065bd9387d217dba
Reviewed-on: http://review.couchbase.org/39324
Reviewed-by: Aliaksey Artamonau <aliaksiej.artamonau@gmail.com>
Tested-by: Aliaksey Artamonau <aliaksiej.artamonau@gmail.com>
MB-10273 rewire compaction calls to use compaction_new_daemon

compaction_daemon fsm left for compatibility with pre 3.0 nodes
and simply rerouts calls to compaction_new_daemon

Change-Id: I38abd5a7895962900b2a1305ab4ed6239bfcfdf0
Reviewed-on: http://review.couchbase.org/39330
Reviewed-by: Aliaksey Artamonau <aliaksiej.artamonau@gmail.com>
Tested-by: Aliaksey Artamonau <aliaksiej.artamonau@gmail.com>