Added script capability to custom buttons
* Added new config items for custom buttons
* Added new UI settings for custom buttons
* Fixed bug with init script not waiting for ACK
* Fixed bug on program exec thread to deal with waiting for ACK correctly.
  Previously since this function also process input queue it could call
  itself while waiting for ACK.