Add ontology type query support to speck engine

Given an OBO file with a SO copy, the speck engine now also supports queries for types and relationships in its DSL. For instance, it is now possible to simply write
```
expect(cds:appears_as_child_of_supertype("transcript")).should_be(true)
```
instead of
```
 expect(cds:appears_as_child_of_type("mRNA")
   or cds:appears_as_child_of_type("tRNA")
   or cds:appears_as_child_of_type("snRNA")
   or cds:appears_as_child_of_type("snoRNA")
   or cds:appears_as_child_of_type("rRNA")
   or cds:appears_as_child_of_type("ncRNA")).should_be(true)
```
as these types are in a _is_a_ relationship to the transcript type. Saves authors a lot of redundant work, and also does not hard-code ontology information which should instead be read from the ontology definition in the OBO.

More additions:
- `string.is_a()` and `string:part_of()` returning true/false
- `feature_node:has_child_of_supertype()`

Also, `expect()` can no longer be called outside of an aspect definition, which caused an assertion to fail.