Fix potential segfault

If more than ~20 objects were being returned at once, Lua would
segfault because the default stack size is 20 and nobody was
resizing the stack.

Now we can return up to ~8,000 objects at once before
erroring out the function properly instead of segfaulting.

Also added test for segfault. All tests currently pass.
Bump to version 0.4.0

Changes:
  - Improve table vs. array detection
  - Improve packing +-inf
  - Add multiple pack/unpack support
  - Add cmsgpack.safe module variant
  - Add local build infrastructure for easier testing
  - Add user-controlled unpack support limiting returned objects
  - Add Lua 5.3 compatibility
  - Remove an unnecessary malloc
  - Use Lua memory allocator instead of malloc for buffer creation

Issues involved:
  - closes #16 - allow multi pack/unpack by default
  - closes #10 - unpack one/limit API added
  - closes #13 and closes #20 - use Lua allocator
  - closes #15 - (included in #16)
  - ignores #22 because it's confusing
  - closes #23 - fixed elsewhere
  - closes #26 - extracted some useful parts from a difficult commit
  - closes #28 - we started tagging versions again recently
  - closes #27 - that failure case works for me now

I merged commits with original author information where possible, but
each commit required manual cleanup of one or more of:
formatting fixes (no tabs, please), commit message fixes (more details
please), extracting contents from a single 300 line commit with 5
different logical changes merged together, and general correctness
checking after merging with newer code.

As of this commit, all tests pass on Lua 5.1.5 and Lua 5.3-work2.