Slight refactor and adjustments to "code flavour"

Significant adjustments:
- Split StIm() into updateState() and frwdWord()
    Mainly for future re-use of updateState code.
- Made functions local to script (via s:function)
    Helps reduce the chance of name clashes. <SID> allows use in
    mappings, but the user can no longer do :call updateState().
- Made function overwrites noisy.
    Because if something does happen, people probably should write bug
    reports on that.
- Deferred mapping of *
    Allows users to easily remap StIm maps easily.

Minor adjustments:
- Removed use of execute statement, as unrequired
- Added a modeline for indentation
frwdWord: search, context mark, set searchforward

v:searchforward being set is required to ensure correctness of typical
n/N usage.

context mark is set for convenience of end-user: After a bunch of hops,
the user should be able to just `` or '' back to their original
position.

search() is just used because I think using functions for that is
cleaner.
stim.vim: bkwdWord, implemented #

As per frwdWord() and *, sets context mark and v:searchforward.
stim.vim: frwdPrtl, implemented g*
stim.vim: bkwdPrtl, implemented g#
doc/stim.txt: Updated to new method and mappings.

It's possibly a bit verbose, and maybe should be in tagged, per-map
descriptions similar to vim's itself.

Also adjusted the suggested mapping in section 3, as I personally feel
that clearing matches is not really in the scope of StIm, and hence I
don't think it should be suggested to the user (especially if they don't
know what clearmatches() does).