frontend for compaction daemon

... abstracts the compaction daemon api from the inner structure of
the compaction daemon which will eliminate the need of backwards compat
code for potential future changes in compaction daemon

Change-Id: I59499d3a0e531b5fe328990d8bfe4e5ee41f8682
Reviewed-on: http://review.couchbase.org/39246
Reviewed-by: Aliaksey Artamonau <aliaksiej.artamonau@gmail.com>
Tested-by: Aliaksey Artamonau <aliaksiej.artamonau@gmail.com>
drop unused define

Change-Id: I2d7b181021563c82cf8c12ccf6d243ed0f026284
Reviewed-on: http://review.couchbase.org/39272
Reviewed-by: Aliaksey Artamonau <aliaksiej.artamonau@gmail.com>
Tested-by: Aliaksey Artamonau <aliaksiej.artamonau@gmail.com>
re-factoring: abstract compaction scheduler code into separate module

Change-Id: I694a8c51996053d930b3e2c494ec9ba186029487
Reviewed-on: http://review.couchbase.org/39309
Reviewed-by: Aliaksey Artamonau <aliaksiej.artamonau@gmail.com>
Tested-by: Aliaksey Artamonau <aliaksiej.artamonau@gmail.com>
MB-10273 create copy of compaction_daemon as a base for further development

unfortunately we need to keep compaction_daemon fsm for backwards
compatibility with older nodes. so I have to copy the whole code under
different name and after the new compaction_new_daemon will be fully
functional I'll rewire all the requests to it and turn compaction_daemon
into the empty stab the whole purpose of which will be to reroute
old nodes requests to compaction_new_daemon

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