allow `evil-invert-char` crossing lines (fix #247)

If `evil-cross-lines` and `evil-move-cursor-back` are non-nil then
executing `evil-invert-char` usually bound to `~` should move point to
the first character on the next line.
fix `evil-show-files` in empty buffers

If the number of lines in a buffer is zero this function caused a
divide-by-zero error. This change makes it display "No lines in
buffer" instead.
implement `evil-show-marks` bound to :marks