Use abstract classes as super typs for Acknowledge operations

Currently we have a marker interface for Acknowledged[Request|Response],
this makes not much sense since we duplicate the code in each subclass
or class that implements the interface. We can simply use abstract
classes and have it implemented only once.
add stop timeout and start mode for windows service.bat

fixes #3938
fixes #3962

(cherry picked from commit f1d6ccc5845ca8f93177c0de3da59a2f37f67818)
add detection of JRE server (JRE on Windows Server)

fixes #3928

(cherry picked from commit a176ffda6fd97b6efbce6cc4f02a824bf5a10a17)
Highlighting can return excerpt with no highlights

You can configure the highlighting api to return an excerpt of a field
even if there wasn't a match on the field.

The FVH makes excerpts from the beginning of the string to the first
boundary character after the requested length or the boundary_max_scan,
whichever comes first.  The Plain highlighter makes excerpts from the
beginning of the string to the end of the last token before the requested
length.

Closes #1171
Minor changes to no_match_size highlight parameter and highlight tests (#1171)

- Randomly store the field to highlight
- Updated test to use common assertions
- Restored previously commented out testCommonTermsQuery
[DOCS] rephrased docs for highlight no_match_size parameter

(removed 0.90.6 coming tag as it's needed only in 0.90 branch)
Upgrade to Lucene 4.5.1