Fix opaque type warnings on R16B.
first fitting pulse test to produce an error

If a fitting has no active workers when eoi arrives, it may evaluate
the worker behavior in-process. This might cause the fitting to
exit non-normal for any number of reasons, but PULSE found specifically
that the sink exiting while a synchronous message is being sent to it
(fsm-type sink, on the sync period), the gen_fsm call will exit
abnormally, but not necessarily in any of the ways already caught.
The specific exit seen here was {normal, {gen...}}.
add 'raw' sink time to fitting pulse test

Checking to see whether this can reproduce issue 48 or 49. It didn't,
but the coverage may be useful anyway.
catch sink fsm exits for all reasons

The reduce_fitting_pulse test showed that other exit reasons might
be seen here. For example, 'normal' can happen if the sink shuts
down after the sync event has been delivered.

This commit broadens the catch to prevent those other reasons from
killing the current process, and also narrows it to make sure exit
is bubbling from the sync_send_event, and nowhere else.
doc & clean reduce_fitting_pulse

Cleanups:
 - compile non-pulse parts even when PULSE is not defined,
   to allow sanity checking with PULSE disabled
 - use eqc:testing_time instead of eqc:numtests to better
   match the eunit timeout expectation
Merge pull request #71 from remote branch 'cmeiklejohn/csm-r16-compat'
Merge pull request #73 from branch 'bwf-fitting-pulse'
cherry-pick commit 041cee5 into 1.3 branch

It was desired to have the sink-sync-send crash fix backported to
the 1.3 branch. This is a cherry-pick of the commit that fixed the
issue from pull request #73. The tests tests that demonstrate the
issue have not been backported, to save merge hassle.

Original commit comment:

catch sink fsm exits for all reasons

The reduce_fitting_pulse test showed that other exit reasons might
be seen here. For example, 'normal' can happen if the sink shuts
down after the sync event has been delivered.

This commit broadens the catch to prevent those other reasons from
killing the current process, and also narrows it to make sure exit
is bubbling from the sync_send_event, and nowhere else.
lower "fitting was gone" log to debug level

Issue #50 is not the only complaint about the message,
"Pipe worker startup failed:fitting was gone before startup".
It's not an important message, though. It *might* tell you that a
pipe vnode is lagging a bit, but most often it's just noise about
pipes that shut down for other reasons (MapReduce errors).

This commit lowers the log level of the message to 'debug' and
rewords it, since it really has nothing to do with the worker
failing to start.
limited support for ring resizing

Provides ability for clusters using riak_pipe to use ring
resizing. Ultimately, this is a hack that includes just enough support
for clusters to successfully transition between the old and new ring
without riak_pipe getting in the way. It does this by lying to
riak_core's handoff subsystem during resize. The lie it tells is that
even when it has outstanding work/queue items it will report that it
is empty. This will allow the pipe vnode to continue processing work
in the old ring since vnodes are not deleted and shutdown until the
new ring is installed. This does, however, come with the drawback that
work that is in-flight when the new ring is installed has undefined
behaviour. The work may complete or may be terminated by the cleanup
processes that follows the installation of the new ring.

Better support for pipe has several challenges. Some can be easily
addressed through extra support in riak_core but the fundamental
challenge is that riak_pipe hands off worker archives. In a larger or
smaller ring parts of those archrives would be owned by new
partitions which would force those archives to be "re-opened" and
disseminated during handoff.
Merge pull request #74 from basho/bwf-fitting-pulse-1.3

Backport fix in issue 73 to 1.3 branch
Roll riak_pipe version 1.3.2
Bump riak_core dep to 1.3.2
Merge pull request #75 from branch 'bwf-lower-log-level'
fix typespec
Merge pull request #76 from basho/jrw-dynamic-ring

limited support for ring resizing
Merge branch '1.3'

Conflicts:
	rebar.config
Roll version riak_pipe 1.4.0
Merge branch '1.4'