Add nio File operations

The functionality mirrors the functionality in the io package with the exception that all operations are performed asynchronously using the java nio2 framework.

This is a duplicate of closed PR #190.