Allow nn_recv($s, $buf) as shortcut for nn_recv($s, $buf, NN_MSG, 0)
Refactor nn_send & nn_recv tests
Use SvUPGRADE to avoid 'sv_upgrade from type 5 down to type 2'
Add dependencies
Better diagnostics for failing tests in send-recv.t
Avoid producing invalid references

Before this change, we'd sometimes create references like this:

  SV = PVIV(0xa2eb88) at 0xcc5c40
    REFCNT = 1
    FLAGS = (PADMY,ROK)
    IV = 0
    RV = 0xdc1108
      SV = PVMG(0xd340e8) at 0xdc1108
        REFCNT = 1
        FLAGS = (OBJECT,RMG,POK,READONLY,pPOK)
        IV = 0
        NV = 0
        PV = 0xda88a0 "Hi there"
        CUR = 8
        LEN = 0
        MAGIC = 0xda14f8
          MG_VIRTUAL = 0x7ffff67c3c60
          MG_TYPE = PERL_MAGIC_ext(~)
          MG_FLAGS = 0x10
            DUP
          MG_PTR = 0xda8858 ""
        STASH = 0xcfdc38 "NanoMsg::Raw::Message"
    PV = 0xdc1108 "\350@\323\0\0\0\0\0"
    CUR = 8
    LEN = 16

Note how RV and PV point to the same location in memory (they're stored in the
same place within the SV union), as well as LEN being set, which indicates to a
lot of places that the PV is a malloc()ed buffer.

Due to the lack of a proper API to prepare any scalar to be used as a reference,
we'll have to do a few things manually to be able to get a valid RV. Some of
this code is taken from pp_undef.

This solution is probably still imperfect and will need some tweaking as wel
discover other values we can't yet upgrade into valid references.
Merge branch 'bz/short-nn_recv'

* bz/short-nn_recv:
  Avoid producing invalid references
  Better diagnostics for failing tests in send-recv.t
  Use SvUPGRADE to avoid 'sv_upgrade from type 5 down to type 2'
  Refactor nn_send & nn_recv tests
  Allow nn_recv($s, $buf) as shortcut for nn_recv($s, $buf, NN_MSG, 0)
Merge branch 'bz/add-dependecies'

While we're probably gonna build dists using Dist::Zilla and a Makefile.PL
generated by that, this is gonna be helpful til we get around to dist this
module up properly.

* bz/add-dependecies:
  Add dependencies