Migrate all non-trivial responses out of serve()

The case statements in serve() were really unwieldy.  This migrates most
of the non-trivial case statements out into separate functions of the
same name.  Subsequent changes will handle Read and cleaning up the
casing of the function names.
Clean up the casing of methods of serveConn

- There's no need for these methods to be exported, so I've made them
  all consistent, and lower case.  The Read() methods will be tackled in
  a separate change.
Clean up the read and readDir methods

- Move the complexity out of the case statement
- Branch sooner, which duplicates a couple lines, but makes the code
  much clearer over all.
- Homogenize capitlization to lower case