Merge branch '5.1.x'
check for infinity (=19) faster than before

The problem was that the numbers are calculated precisely and only
afterwards is the returned value limited to a maximum of 19 (for
compatibility with flite). It's not really worth finding out that
the utterance contains 92 words when we then `rail' to 19 anyways,
especially given that DOM traversal is relatively slow.
further JAVAify some C code originally taken from HTS
cache targets instead of re-creating them for new DOM objects.

Synthesis (at least HMM synthesis) re-creates the Targets, again from XML.
We can simply use the DOM objects' UserData facility to cache the Target
objects for later re-use (after all, even though we have sped up the generic
feature processing two checkins ago, it's still quite slow).
some code sanity:

make methods and constants static when they can be,
replace LinkedLists with ArrayLists in ModuleRegistry
remove redundant null/truth check,
generic iterator instead of casting,
combine multiple calculations into one formula
move calculation of gamma (1 / stage) into HMMData function
get rid of (duplicate?) Pdf arrays.

It appears that nobody ever sets nor gets them.
use an Enum to describe types of HMM data streams (instead of consts)
JAVAify HTSEngine.processTargetList() which now returns the HTSUttModel

Previously, processTargetList() filled in the data into a model given
as a parameter (C-style)
JAVAify HMM optimization

clarify code, move boundary check into HTSPStream,
also, remove debug output from HMM optimization,
and adapt some other code to interface changes
JAVAify vocoding, taking away most unused options (sorry).

turn the vocoder into real Java, by acquiring variables only as needed
and then making all functions static for which it is feasible.
Also, this patch removes most of the unused options (lpcVocoding,
debug output, gaussian noise, NGAIN) and some potential debug/standalone
code. I hope this is acceptable, I had to somehow reduce complexity
to be able to analyze what's happening.
some cleanup in CartTreeSet

also, store duration errors from CART selection directly in HTSModel
inline HTSDWin into HTSPStream

an arguable change to get rid of HTSDWin as a a separate object
and icorporating HTSPStream into it. I don't believe that the
current modularization would work with any other windowing
implementation anyway, so very little is lost. At the same time,
I found quite a runtime difference when I profiled the inlined
vs. non-inlined versions (some time ago, though).

Conflicts:
	marytts-runtime/src/main/java/marytts/modules/HTSEngine.java
finally: changes that are necessary for incremental processing

add a few methods, make a bunch of static methods public (instead
of private) and one more protected.
fix a possible array-out-of-bounds condition.

if the complete array given to interpolateNonZeroValues consists of zeros,
then findNextIndexNonZero immediately returns -1, the j-counter starts at i=0,
and countour[j-1] is the -1'th index -> FAIL.
This fix adds a ?-expression to ascertain that j never starts below 1.
Merge branch 'timo'
fixes #218
developers/contributors: use links to GitHub profiles instead of non-specific IDs
order developers alphabetically
add Sébastien and Ali as developers