Further corrections to handling of missing fields

1. Change the order of missing/type tests in the generated
code. Before, the type test was done first; since everything is
booleany (or at least, I want to admit anything in boolean fields),
the type test for a boolean field was 'true', i.e., pass. This
resulted in a branch that was never reached (and indeed, was removed
by uglify); but, because the default value was assigned in that
branch, missing boolean fields would be coerced to 'false'.

2. longstr fields are expected to be buffers, so the defaults must
also be buffers.

I also added the possibility of missing fields to the generative codec
and framing tests, which required also that the associated property
takes into account defaults.
Update changelog
Add global flag to prefetch, since RabbitMQ v3.3.0 changes its meaning

It used to mean:
 off -- apply the prefetch to the channel
 on  -- throw up and fall on the ground twitching

It now means:

 off -- apply the prefetch to subsequent consumers, in some kind of
        combination with the channel prefetch
 on  -- apply the prefetch to the channel

See http://www.rabbitmq.com/consumer-prefetch.html