Frameworks: Customizable Softkeys

Port forward from jb branch from SteveSpear

This allows enabling, and setting of sort and long press options
for softkeys.

Basiclly this catches the keycode in the PhoneWindowManager
before it is passed to be handled.

That being said it will obviously have the same effect on the navbar
since we just simulate those keys being pressed. To avoid this and
leave an option for a stock feel I basiclly have an if statement that
revolves around the enable checkbox in rc, which navbar devices wont
have access to. This is different from how cm did it but I think it
does a better job at preserving the stock behaviors if that is desired.

Also unlike CM I gave the all the buttons the ability to change both soft
and long press in true AOKP fashion. I can only test the short presses with
my navbar so long press it untested.

Change-Id: I90ada8e245d5a9e3eb7bc209ca239a23216ad2c7
Signed-off-by: Rohan Mathur <rohanmathur34@gmail.com>