Double long press, triple long press and triple tap, long-long press

Additions:
Double long press, triple long press and triple tap
Affects most of the changed files, but until this commit where the user see a difference (except for the minor changes below).

Holding a button after long press trigger long press on invoked button after another 2*long press.
Then it is possible to map Home to long press to long press, get recent apps after3*initial down.

Multi-key actions only require secondary button at first press, then only primary is needed.

No change but clarification: Default only applies to single long-press, single click, not any other key. (how to explain double tap creates single click?)

Possibility to set press/tap timeout to system default and tap to press timeout.
If tap/press do not match, actions may be neither press nor tap.

Bug fixes:
Invoked button should have the initial down time.

Key invoked key kept down had limit on inject key rate (was several per ms in the emulator).

Up event was not sent for secondary button, only primary.

What is not done:

I have changed the order of preferences, to match the order they appear.
If added to mainline, the preference names should either be changed or stored in other storage. Should probably be renamed.

I would like to remove tap time out. Either it is a press or a tap. Now it can be both (then press is used) or neither.
Really, even long press should be system default, but unless I find a way to tweak the tapping, it is good to have.
Maybe option should be related to system default?

Custom key: I would like to use any key (especially more than available in Screen off).

Most changes in PhoneWindowManager.java

Excluding some files from private build in branch 3.x.g.p