Fix from_field cache.

static in base class does not by itself use late static binding, only if the derived class declared the same variable. Thus the from_field cache would collide if two tables had the same column name.

For instance:

    $a = Event::from_id(1);
    $b = Row::from_id(1);

    var_dump($a);
    var_dump($b);

Since both tables use "id" the results would collide and show up as the same instance.
Replace static:: with BasicObject:: for clarity.
Since cache is global there is no need for local/global revision.
Merge branch 'query_cache_collisions'