Ability to add custom buttons

This PR adds the ability to programmatically add buttons with custom icons and colors.

There is a new method to be called, addCustomButtonWithIcon: backgroundColor: andButtonId:

Instead of passing around the enum type internally, now a plain int is passed around.  Custom buttons MUST have id values >= 100, or an assertion error is thrown.  This is to remain backwards compatible with the existing enum for the preset buttons, and also allow room for expansion for additional presets in the future.  

Also updated the README and example code to include this information.

This will fix issue #7