MB-7676: prioritize view compactions heavily when we wait for it

We've have found that with our typical sizing, db compaction can
easily take hours. On the other hand we don't need to wait for db
compaction during rebalance. Which previous implementation in fact it.

I assumed that it's better to avoid disturbing running compaction, but
it appears that it's better to drop whatever we're compacting and do
index compaction when we need that.

This commit also fixes subtle issue in implementation of vbucket move
orchestrator decisions. Previously it would incorrectly report
compaction as done simply when it started it. The idea was to avoid
waiting for very final index compaction. But it's not clear that such
misinformation may prevent vbucket move scheduling
optimization. I.e. vbucket move scheduler would think it's ok to run
certain move, when in fact move will have to wait for compaction
completion.

New code always drops bucket compaction when view compaction
inhibition is requested for it. It may have some slight negative
effect, especially when no indexes are defined.

Change-Id: I70ba6be701c750da9acbd83169bd5e1a16f0e83d
Reviewed-on: http://review.couchbase.org/24397
Tested-by: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Reviewed-by: Aliaksey Artamonau <aliaksiej.artamonau@gmail.com>