* tests: add abstract class for all database related tests
* tests: add abstract class for all ModelsCommand related tests
* tests: add GenerateBasicPhpdoc test
* tests: add CustomDate test
* tests: remove MITM abstract TestCaseDatabase, not useful here
* tests: skip new ModelsCommand test on Laravel < 6
* tests: remove CarbonImmutable checked
Since we decided to skip for Laravel < 6.0 anyway, it's always present
* travis: use explicit test matrix and drop PHP < 7.2
* composer: use more liberal version requirements for orchestra
This is to easier satisfy when we want to use older Laravel versions on travis
* tests: add shim for assertStringContainsString for older Laravel/phpunit versions
Specifically, Laravel 5.5 works with an older phpunit version, which
does not feature assertStringContainsString
* composer: bump minimum PHP version to 7.2
* travis: explicitly install Mockery for testing older Laravel versions
* composer: make mockery a root requirement and remove the one from travis
* travis: further improve based on suggestions from https://github.com/fruitcake/laravel-cors/blob/master/.travis.yml
* tests: skip test if mixin markers are already present in model
We're also testing Laravel 5.5 which contains them (they were removed later)
* phpunit: use dedicate `Tests` namespace for tests
* tests: replace phpunit with orchestra/testbench
* phpunit: ignore result cache file
* phpunit: adapt test for newer version
* tests: add base testcase class with a helper to run/assert commands
* tests: add test for ide-helper:eloquent
* travis: add global default variables
* travis: disable xdebug, speeds up running tests
* travis: convert php versions to build matrix for environment vars
* travis: only run phpcs/phpunit when the env vars signal it
However phpcs only runs with one test combination from the matrix,
not necessary to execute it every time.