Use Lua memory allocator instead of malloc

cmsgpack is a much better Lua citizen now because we use the
memory allocator assigned to our lua_State instead of grabbing
memory from the system ourselves.

Typically the memory allocator is just the system's realloc,
but some use cases involve providing custom allocation routines (for
accounting or performance or limiting memory).

This closes #20 too because those commits were just trying
to remove the previous direct allocation behavior.

All tests pass under Lua 5.1 and Lua 5.3-work2.
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.