Merge branch 'release/0.14.0' into develop

* release/0.14.0:
  Release 0.14.0
Don't use mempool in cork_hash_table

Before we were using a `cork_mempool` to allocate all of the entries
that are stored in a hash table.  This reduces the number of times that
we have to call `malloc`, but currently the mempool implementation isn't
able to return memory to the OS.  That makes it less than ideal for a
hash table that grows and shrinks during its existence.

Plus, now that we have customizable allocation, a better approach is for
your application to use a better `malloc` implementation, like jemalloc
or tcmalloc.
Merge branch 'feature/no-mempool' into develop

* feature/no-mempool:
  Don't use mempool in cork_hash_table
cork_strndup should copy entire string

The `cork_strndup` and `cork_xstrndup` functions were using `strncpy`
under the covers to make the copy of the incoming string.  This
truncates the copy at the first NUL byte.  We want to copy the whole
thing, so we should use `memcpy` instead.
Merge branch 'feature/strndup' into develop

* feature/strndup:
  cork_strndup should copy entire string
Release 0.14.1
Merge branch 'release/0.14.1'

* release/0.14.1:
  Release 0.14.1
  cork_strndup should copy entire string
  Don't use mempool in cork_hash_table