Fix memory reservation split bug.

p=getmem(8) { allocates 16 byte block }
relmem(p) { frees that block; heap now has two chunks marked free }
q=getmem(8) { allocate 1st block again }

Originally, a chunk split happened regardless of size of request versus
first-fit chunk.  Since 1st available chunk size == allocated size, this
resulted in corrupting the 2nd chunk, which caused applications to crash.  Fix
is to check to see if we need to split the chunk in the first place.  If not,
just return the chunk as-is.
Add ENOTFOUND error for filesystem ops