If tests fail early or very late, the setup/teardown info is useful.
Atomic ticket operations.

Needs a recent version of crm_ticket (pacemaker);
1.1.10+git20140124.96cd194-1.1 is good enough.
Fold store_ticket() back into {grant,revoke}_ticket().

Ensures that store_ticket() can't be forgotten somewhere.
Fix "crm_ticket" simulation: make single quotes optional.
Comments added to unit-test script.
Changed level of crm_ticket_get() log message.
Unit tests: allow an upper limit for the test number, too.
Return an error code to the calling program, too.
Unit tests: Ignore EOF when reading Booth output.
There's a pexpect.sendintr(), no need to "kill".
Drain the Booth output before terminating.

I had an error once in ~400 test runs in the self.booth.close()
line below:

  pexpect.ExceptionPexpect: close() could not terminate
     the child using terminate()

Perhaps that was caused by unread data on the pipe; let's try draining.