Support for extension, filename, and global hooks

Two *.vimhook name formats, which translate into three different types of
hooks. They are stored in three different dictionaries:

    s:globalHookFiles[eventname]                     => a list of hook files
    s:extensionSpecificHookFiles[ext][eventname]     => a list of hook files
    s:filenameSpecificHookFiles[filename][eventname] => a list of hook files

Global and Extension-specific hooks
-----------------------------------
Format: [.sortkey].eventname[.ext].vimhook

To make the regex parsing easier, I'm mandating that <sortkey> be made up
only of numerals. If <ext> is present, then this hook will only get run when
<eventname> is triggered on a file ending in ".<ext>".  If <ext> is NOT
present, then the hook becomes a global hook, which means it gets run
whenever <eventname> is fired.

Filename-specific hooks
-----------------------
Format: [filename].eventname.vimhook

These hooks only get run when <eventname> is fired and <filename> is the
name of the current buffer. <filename> can be any valid filename.