FIX: Wrong order; buffer delete must come after edit.

Commit 1d89cc7cb3b617a6701865a547a825f3d472cd3b messed up the implementation from e43d6f301d6799117770d2df0c57a7ee86fba74f. When the original buffer is deleted before the effective buffer is edited, the current window may close, thereby making a :split command appear like an :edit.
Support filespecs with special characters via fnameescape()

Cosmetics: Drop superfluous ":".
Move to after directory; prepend "zz" to ensure executing last

If other BufNew autocmds follow, they may mistakenly apply to the existing file, yet assume that this is a new file (and e.g. add header templates). Therefore the reloading of the existing file should come last.
ENH: Also convert filespec in argument list

To avoid preloading the argument list, this is done on first load of an argument. That argument is substituted with the original filename, to avoid that re-visiting that argument again positions the cursor on the specified location.
Skip cursor placement if specified line doesn't exist

Instead of going to the last available line as previously. By appending the fold and window-centering commands, these also are only executed on a successful jump.

Bonus: Cosmetics in style.