Update version of phpunit in composer.json
Exclude bootstrap.php and app.php from code coverage reports
Restructure WeightedRandom::generate() to allow proper code coverage reporting

Using an early return caused PHPUnit to report that a closing brace was
never executed, since the return was always hit.