MB-9534: avoid use of binary:split while cleaning backtraces

We found out that binary:split is using binary:matches under
covers. And that binary:matches has logic to yield control back to
erlang scheduler on heavy enough invokations. For whatever reason they
decided to keep their intermediate state in "digits" of large
bignum. And those bignums get expose in backtraces we capture, causing
massive slowness if bignums are big enough.

We avoid binary:split completely. We use binary:match and incremental
splitting of backtrace in order to avoid this problem. Filtering and
massaging of backtrace is now also incremental for some small wins in
memory consumption (i.e. by avoiding intermediate list).

Change-Id: I25acc43936ca6dec81a7a3ef7685f9979c3efcfd
Reviewed-on: http://review.couchbase.org/31634
Tested-by: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Reviewed-by: Aliaksey Artamonau <aliaksiej.artamonau@gmail.com>