Return plausible isReadable() default impl for ext storage

When an ext storage doesn't implement isReadable(), always returning
true made the file scanner believe that the file exists and creates a
cache entry with the size zero.

This fix makes the default impl of isReadable() use file_exists().

Fixes #5940
Moved default isReadable/isUpdatable impl into Common class

Also adjusted all ext storage backends to not override these when the
default behavior is expected.