A better collection class for PHP 5.4 or later