test: add phpunit configuration file

Tests can now be run with just `vendor/bin/phpunit`.
test: update travis settings
doc: correct stated minimum PHP version
breaking: change visibility of method BaseType::toXml

This is a breaking change as the visibility of the method BaseType::toXml has been
changed from `public` to `private`. Client code should now call the new public method
BaseType::toRequestXml instead.

The class property `$requestXmlRootElementNames` has also been added to
the BaseType class. This is a breaking change as classes derived from
BaseType may have to assign a value to this property in their
constructor.

```
if (!array_key_exists(__CLASS__, self::$requestXmlRootElementNames)) {
    self::$requestXmlRootElementNames[__CLASS__] = '<ELEMENT NAME>';
}
```

Classes are only required to do this if instances of the class are used
as request objects. The value assigned to `$requestXmlRootElementNames`
will be used as the name of the root element in the request XML.
breaking: change callOperation to accept a request object

This is a breaking change as the paramters of the method
BaseService::callOperation have changed. Code calling this method must
now pass an instance of the BaseType class as the second parameter. The
method will now construct the XML request within itself by calling the
BaseType::toRequestXml method on the passed request object.
doc: update CHANGELOG