Fix some mount provider rage

This changes the mount superclass API slightly:

- Ignores the return values of subclass methods like mount_fs/umount_fs which were not returning booleans anyway.  None of the subclasses were implementing this style of behavior and they all behave like do-the-thing-correctly-or-raise, rather than do-the-thing-and-return-false-if-it-fails.  Removing all the status = mount_fs style checks simplifies the code considerably and makes it correct.

- The remount_fs stuff in subclasses consistently attempted to do a umount/mount remount of the filesystem if the filesystem didn't support remounting directly.  But the superclass would throw an exception if the filesystem didn't support remounting directly so this code was never executed.  This fixes that oversight, so behavior changes a bit.  It will only affect people trying to remount a filesystem that did not support remount and which previously threw an exception, so this should not break anyone's workflow.

- Also fixes some incorrect copypasta in the debug messages that nobody has caught for years.

- Plus modernizes the rspec tests (no behavioral changes here other than the umount/mount remount stuff