New libcork allocation API

We're not supposed to use `free` anymore, since libcork now allows the
end application to provide a custom memory allocator.  The new API also
allows libraries that use libcork to accept their own custom allocator,
different than the one that libcork itself uses.  But we're not taking
advantage of that capability at present.
Merge branch 'feature/allocator' into develop

* feature/allocator:
  New libcork allocation API
Bump requirements for 0.3.1
Release 0.3.1
Merge branch 'release/0.3.1' into develop

* release/0.3.1:
  Release 0.3.1
  Bump requirements for 0.3.1