[Reviewer: Alex] Ellis refactoring

I've done some refactoring of the live tests. Primarily, this:
* Gives a better conceptual separation between provisioning a line with Ellis and making calls over that line with Quaff/SIPp
* Makes skipping tests saner (and more composable)

I've also:
* Removed MockAS as this was never used
* Moved all the SIPp-related code into its own file, sipp-test-definition.rb

The only changes from the point of view of actually writing tests are:
* `add_quaff_public_identity` is now called `add_public_identity`
* To skip tests, you now create a TestDefinition and call `skip_unless_mmtel` and `skip_unless_pstn` at the start of the test, rather than creating a MMTelPSTNTestDefinition.
* SIPp-based tests (of which there's only one) have to be instances of SIPpTestDefinition, and create endpoints with `add_pstn_sipp_endpoint` (not `add_pstn_sip_endpoint` which was badly named).
Using `nil` to mean the timeout popped is a little bit nasty. It feels like you could solve this better by refactoring most of the common processing into a sub method and logging the timeout case from the rescue block and the failure case from the begin block.