first guess at a heap interface
added the beginnings of an implementation; untested
added Makefile