New unlock methods added

* Many changes in logic.
* Added unlock methods using keyguard and FLAG_DISMISS_KEYGUARD. 
* Created abstract class for method.
Separate unlock classes

* All unlock methods are in separate classes now.
* Added some JavaDoc.