Completed the entity declaration grammar

The supported types are currently int, string (with a mandatory maximum length), and reference.

The reference type is actually a parametric type. The parameter is the entity which is being referenced. string(20) and string(40) are different types; so are &apples and &oranges.

You can make a bare entity. It'll contain nothing but a collection of primary keys. Thus,

    entity bear();

is a bare entity counting the number of bears.