Rework boot file access process

kOSProcessor.cs - Rearranged the work flow for copying boot files to the
local hard disk.  The process is only started when creating a new local
hard disk.  If the hard drive node was removed from the save file, there
may be a new hard disk without this being the first launch.  To ensure
that we don't mistakenly copy a new boot file at that point, there is
also a check for PRELAUNCH situation.
CPU.cs - added a guard against trying to access the archive for boot
while out of comm range.  Vessels already in orbit but not in comm range
will not throw an exception on loading if the option to start on the
archive is enabled.
PersistenceExtensions.cs - Create another extension method which will
allow us to check if the archive is within range without a call to
CurrentVolume which will throw an error if out of RT comm range.  This
is only applicable when kOS is configured to start on the archive and
support remotetech.  Trying to access the archive any other way from
internal scripts (including a boot script) will still throw the error as
expected.
RemoteTechVoumeManager.cs - provide the base method used by the new
extension method added above.  Simply skips GetVolumeWithRangeCheck.