Genie:  Uninline ConsoleTTYHandle(), pass node&
Genie:  Axe ConsoleTTYHandle::GetFile()
Genie:  Simplify port_tty_open()

In the absence of a TTY delegate (the !has_tty case), 'that' matches the
result of tty->GetFile(), so remove the conditional.
Genie:  Pass node to Terminal ctor, axe GetFile()

Pass the tty's file node (instead of its pathname) to the TerminalHandle
constructor.  Forward it to vfs::filehandle so we don't need to override
GetFile().
Genie:  IOPtr -> vfs::filehandle_ptr
Genie:  Just return new filehandle results
Genie:  Return smart pointer from property open
vfs, Genie:  Add new_property_{reader,writer}()
Genie:  Call new_property_{reader,writer}()
Genie -> vfs:  Move/rewrite property_reader
Genie -> vfs:  Move/rewrite property_writer
Genie -> vfs:  Move property.hh
Genie:  Move new_property() into namespace vfs
Genie -> vfs:  Move/rename property_file
Merge branch 'property-file'