min_heap uses dynamic memory allocation

* passing heap size upon heap creation
* more accurate Makefile and error messages