Entities tweaks

Prevents errors and nil results when no components match a query;
methods will always return an empty array if no components are found.

Adds the new Entities.where() method, which allows selecting components
via a block (analogous to the select() method on any Enumerable);
optionally, a component class may be supplied as the second argument,
causing the selection to be performed only on components of that type.