Expose VOICES list as voice in definition

This will allow the main module to handle building and passing in the
selected voice to the service implementation.
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.
Remember/recall last-used fields in mass generator

Uses the user preferences object (conf) to save and recall the last
source and destination field that was used with the mass generator.
Consistent use of quotations in services package

Ensures the use of single quotes for identifiers and internal strings,
and double quotes for human-readable communication.
Consolidate take_a_break()

This can be done in fewer lines then at present, and is only called in
once place, making this merge straight-forward.
Save/recall last voice used

For each service, when the user records either through the one-off
method or the mass generator method, saves the voice. When returning to
either form, displays the last-used voice.

This is done via a JSON-encoded dict stored in the last_voice slot of
the conf object.
Move service text normalization to main module

This relieves all the service implementations the responsibility of
providing their own encoding/decoding/normalization -- it can all be
handled in one place, since it is done the same across the whole system.
Merge branch 'chg/voices-refactor' into develop

Removes the requirement that service implementations must manage their
own form construction and voice defaults. Instead, services can expose a
single voices list of the voices supported by the service.

Conflicts:
	awesometts/services/ekho.py