/*
 * call-seq:
 *      add_action( action, label, user_data ) { |action, user_data| ... }
 *
 * action = The action id
 *
 * label = The action label
 *
 * user_data = Custom data to pass into the block ( optional )
 *
 * Adds an action. When the action is invoked, the specified block will be called
 *
 * Examples:
 *
 * myinstance.add_action( "MyAction", "MyLabel" ) do |action|
 *      # something to do
 * end
 *
 * Or
 *
 * myinstance.add_action( "MyAction", "MyLabel", MyData ) do |action, mydata|
 *      # something to do
 * end
 */
static VALUE
notification_add_action( int argc, VALUE *argv, VALUE self ) {