Split defragmenter into multiple files

... to facilitate unit testing.

Change-Id: I2ab1376d7616db3a63433b82a3e6770a30d22d02
Reviewed-on: http://review.couchbase.org/44285
Reviewed-by: Jim Walker <jim@couchbase.com>
Reviewed-by: Chiyoung Seo <chiyoung@couchbase.com>
Reviewed-by: Trond Norbye <trond.norbye@gmail.com>
Tested-by: Dave Rigby <daver@couchbase.com>