Convert constructor arg handling to xmacros

This makes it simpler to add/remove/change arguments in the future

Change-Id: I3a8f6d792e7e6c9a9855aca524441e7e89c6280b
Reviewed-on: http://review.couchbase.org/26322
Reviewed-by: Volker Mische <volker.mische@gmail.com>
Tested-by: Mordechai Nunberg <mnunberg@haskalah.org>