MB-12357 Make customs errors in updater possible

When there was an error in the updater it is not possible to send
a custom error. So if you throw a custom error:

    throw({custom_error, <<"this is the reason">>)

Such an error was always wrappen into another error tuple, hence
ending up as:

    {error, {custom_error, <<"this is the reason">>}}

This lead to a user visible response of:

    {"error":"error","reason":"{custom_error,<<\"this is the reason\">>}"}

This is not user-friendy or what you would expect. With this commit
the response is:

    {"error":"custom_error","reason":"this is the reason"}

Change-Id: If68ffb9d5b8d70de338a9441ed74edb2aa28f33a
Reviewed-on: http://review.couchbase.org/42163
Reviewed-by: Volker Mische <volker.mische@gmail.com>
Reviewed-by: Sarath Lakshman <sarath@couchbase.com>
Tested-by: buildbot <build@couchbase.com>
MB-12251 Don't log stacktrace on query parse errors

Change-Id: I437f736a9e268244450de0538e93a102b2c2d38e
Reviewed-on: http://review.couchbase.org/42672
Reviewed-by: Volker Mische <volker.mische@gmail.com>
Tested-by: buildbot <build@couchbase.com>
Reviewed-by: Sarath Lakshman <sarath@couchbase.com>
MB-11917 Async couch_view_parser implementation

Scheduler collapse in Erlang R16 is observed due to changes made
in R16 version with regard to erlang thread scheduler in general
and to scheduling NIF threads in particular. couch_view_parser is
a json stream parser NIF and takes variable amount of time to parse
incoming data depending on the incoming stream length. This resulted
in reporting improper reduction count to erlang scheduler, which in
turn caused scheduler collapse. This NIF is now implemented in
asynchronous fashion, where NIF queues the incoming tasks and returns
to erlang world immediately.

Change-Id: I9e87fe63b78b10a31aba70aba31913d60331b5d7