Flexible mappings

This pull request allows users to define their own mappings by adding an option to prevent default mappings, and defining <Plug> mappings to allow users to easily define their own. This also fixes what I believe to be a bug in how the area is selected due to use of normal instead of normal! (as elsewhere in the function) which arises when VIM's gv is remapped.