Don't set the limit() on ByteBuffers in EphemeralFileSystem.

Since we allocate new buffers when we are about to overstep capacity anyhow, there is no need to set a limit lower than capacity.
In fact doing so causes issues since we only check for capacity when we re-allocate.

Also renamed the clone() methods to copy() since the classes don't implement Cloneable.
Make EphemeralFileSystem keep track of directories.
Merge pull request #656 from apcj/efs-directories

EphemeralFileSystem fixes and improvements.