CBufferedFile: convert into a non-refcounted RAII wrapper

- it now takes over the passed file descriptor and closes it in the
  destructor
- this fixes a leak in LoadExternalBlockFile(), where an exception could
  cause the file to not getting closed

- disallow copies (like recently added for CAutoFile)
- make nType and nVersion private
CAutoFile: update destructor to match CBufferdFile destructor

- also remove 2 explicit CAutoFile::fclose() calls in net.cpp
- make nType, nVersion and file private
(re)add explicit close function to CAutoFile and CBufferedFile