Miscellaneous updates

* Add support for setting key listener in the builder (like the standard dialog builder does)
* More RTL improvements
  * Gravity will now use the correct method depending on the SDK version, and drop the custom alignment enum. This kind of finishes the updates I had in my last PR
  * Added supportsRTL to the sample manifest to note this
* Add `CHANGELOG.md` to keep list of full history
* Add option to always call multichoice callback (address #147)
* Various updates to `MaterialDialogCompat`
  * Use new customView method with check for whether or not it's scrollable
  * Add missing listeners
  * Add some missing annotations (ArrayRes and Nullable)
  * Add missing setMultiChoiceItems that takes in an int
  * extract multichoice callback setup to separate method, with safer implementation to handle if checkedItems is null
  * Add missing iconAttr method
* Use `AttrRes` for `iconAttr()` in `MaterialDialog`
* Use `getTextArray()` instead of `getStringArray`. The former actually returns a `CharSequence[]`, which is what the dialog expects