Improved semicolon insertion

Improved semicolon insertion via the shortcut `;;`:

**Improvements:**
   * Now also works for normal mode instead of only insert mode.
   * Doesn't leave insert mode after inserting the `;`
   * Remembers the current cursor position instead of just leaving it at the end of the line regardless of where you were.
   * Doesn't insert a `;` if there is one present already