Properly implemented enderchests

They do everything you expect them to.
I copy and pasted :P