Many to many

Implemented many to many functions that have the ability to be ordered by fields found in the foreign table. Results can also be limited/offsetted, allowing for pagination.

Additionally, total counts can now be obtained for those many to many relationships (where the counts are filtered by relationship).

Example:

```php
<?php
    // Loads a collection of states in the US
    $regions = region_collection::by_country(2);

    // Returns an array of collections of cities. 
    // Each state will only load the first 10 cities, ordered by name in ascending alphabetical 
    // Loaded as a multi-get, hitting DB with one query max, and cache with one query
    $cities = $regions->city_collection([ 'name' => entity_dao::SORT_ASC ], 0, 10);

    // Loads a count of cities found in each state 
    // Loaded as a multi-get, hitting DB with one query max, and cache with one query
    $regions->city_count();