Refactor result types into subclasses

Change-Id: Ib6c2c72b7cad1e69552e9e21d3f5b7a91fbc08e2
Reviewed-on: http://review.couchbase.org/26283
Reviewed-by: Volker Mische <volker.mische@gmail.com>
Tested-by: Matt Ingenthron <matt@couchbase.com>
Reviewed-by: Matt Ingenthron <matt@couchbase.com>