New ATTS_Factedit_button implementation

Brings along a new interface for the record() callables: only text and
voice will be passed (no longer passing the form reference). This will
make it easier for service implementations to be done.
Remove dead (or soon-to-be) dead services code

The preview callable is now handled directly in the main module, and the
default voices will soon also be handled directly in the main module.
Store/recall last service from configuration

This allows the position of the service dropdown to persist from session
to session, instead of being lost.
Adjustments for ATTS_Factedit_button

Prefer the use of .connect() on the actual event attribute, and prefer
returns when possible instead of deep nesting.
Consolidate record/preview mode code

This can be done simply with a flag -- the implementation is mostly the
same otherwise.
Initial refactoring of onGenerate

Removes the reliance of this on the filegenerator_layout implementations
in the services, and makes this similar enough to ATTS_Factedit_button
such that both functions will be able to share code.
Remove filegenerator_layout hooks for all services

This can now be done in the main module entirely from the voices exposed
by each of the services module.
Remove additional dead code

Neither filegenerator_onCBoxChange nor getService_byName are used with
the new mass generator implementation.
Fix confusing "self" variables and modal ownership

This were really references to the editor and browser from Anki,
allowing us to correctly set ownership of the modals.
Shared code base for service forms

Takes the code for both the single and mass generator and moves much of
it out to separate functions to be shared among both windows.
Rename parameters for generate_audio_files

Also adds a service_def reference, which will be needed soon. These now
match the caller's local variables for clarity.
Introduce 'throttle' flag for services

This is to replace the conditional expression that checks to the Google
TTS service (using its service key) to see whether or not mass
generation should be throttled after 900 requests.

By using a flag for this throttling, other Internet services can start
to use the same throttling functionality.
Move sound bracket match tag into regex module

This will soon be usable elsewhere in the add-on.