Implements SLKeyboard protocol for custom keyboards

With iOS 7 SDK, UIKit now exposes [UIInputView](https://developer.apple.com/library/iOS/documentation/UIKit/Reference/UIInputView_class/Reference/Reference.html) to allow custom inputs/keyboards to be created.

This PR provides an `SLKeyboard` protocol for such views, refactors the original `SLKeyboard` class to implement the protocol methods, and updates `SLTextField` and `SLTextView` to use different keyboards as needed.