Better support for OGR virtual file systems.

Do not call os.path.realpath() on input filename to preserve slashes in e.g.
/vsicurl/ input strings.

Divide OGR virtual file systems to three classes:

Access methods: Filenames are passed unmodified to OGR.

File methods: Existence of file is checked before passing the name to
OGR.

Unsupported methods: These do not make sense for input, emit an error.