Begin new interfaces for util module

Cleans up formatting to be compliant with Python standards, adding new
interfaces (still unstable!) for dealing with filenames and processes.

At least some of this will be moving over to the paths module.
Reimplement media_filename to use MD5

The generated filenames bring us closer to addressing various requests
and complaints about duplicate filenames and the desire to hash the
filenames instead. The new filenames include the service and voice names
in addition to the hashed phrase, so filenames can be uniquely
generated.
Merge branch 'develop' into bug/filenames

Brings in most-recent changes to the develop branch to avoid conflicts
when this branch is completed (notably the changes to the configuration
screen and database).
Remove quote_mp3/file_howto_name entirely

With filenames being generated using MD5 sums instead of using phrases
directly, all filenames should be unique and safe and portable, removing
the need for quoting of any special characters.
Remove alias functionality from config module

With the removal of quote_mp3/file_howto_name, the need to refer to
columns by an alias is no longer necessary.
Clean up filename generation

Extensions are now allowed to be doubled (e.g. mp3.gz), and services are
no longer allowed to contain hyphens. All are stripped as necessary to
create a filename with no leading or trailing non-alphanumeric
components in any of the partitions.
Break out regex patterns into separate module

Some patterns (e.g. non-alphanumeric filters) are used in more than one
place, so this should provide some reuse.
Move media_filename() to paths module

This new home will allow the function access to the file system encoding
stuff and is also the more logical place for it.
Use file system encoding with media_filename()

For most setups, this will result in media_filename() returning unicode
strings rather than plain ones.
Move Windows PATH setup to paths module

This consolidates things a bit and gives a more logical home for this
functionality.
Clarify use of _subprocess in util module

This is actually a workaround for /some/ versions of Python 2.7. Not all
lack the constant in the root of the subprocess namespace.
Windows Anki chokes on instance-as-module

The import machinery on the Windows platform does not seem to support
this style of doing things, so the __getattr__ backward compatibility,
unfortunately, needs to go away.

Since we won't have __getattr__, this whole module could have its class
structure removed entirely to simplify things quite a bit.
Update services to use new util/paths interfaces

These now call into media_filename() with their voice identifiers and
into STARTUP_INFO for controlling spawning processes on Windows.
Use media_filename() function with Google caching

Ceases the use of long SHA hashes for Google caching and switches
instead to the now standardized MD5 hashes.
Merge branch 'bug/filenames' into develop

Brings in a new method for generating filenames across the add-on. Now,
instead of generating them based on the input phrase and nothing else,
filenames are generated by combining the service name, voice, and an MD5
hash of the input phrase.

These new filenames should be portable (short, alphanumeric w/ basic
symbols only, with no percent quoting needed) and unique (the same
phrase will have different filenames for different languages and for
different voices).

Resolves #18 and #7 on the issues, also fixes #11 as a side effect.
Customize sanitization regex in Config class

Allow the regex object responsible for sanitization to be passed into
the Config class, allowing true unit testing in the future.