lib/nfs/Cancellable: use boost::intrusive::list

Reduce Remove() overhead because we don't have to walk the list to
find an iterator by reference.
lib/nfs/Glue: eliminate class NfsGlue

It's just a useless wrapper for class NfsManager.
lib/nfs/Glue: destruct the NfsManager in the I/O thread

This allows eliminating the indirection code from the NfsConnection
destructor.
lib/nfs/Glue: add assertion
lib/nfs/Manager: use boost::intrusive::map

Reduce overhead for storing the key twice, and more overhead while
looking up the connection to remove it after a failure.
storage/nfs: make a few attributes "const"