Moved creation logic to the factory.

This is in preparation for nested entity creation and archetypes.
Add "archetype" as new type.

An archetype is used for creating new entities. It contains one or many
definitions for entities, along with relationship between them. It also
contains any extra data needed for a world simultion, such as thoughts
and knowledge.
Archetypes should be seen as blueprints for entity types, as they
describe how new one should be composed. They are created just as
regular entities, using the existing Create op functionality.
As an example, there should be one "human" entity type, with archetypes
such as "settler", "merchant", "soldier" etc. This differs from the
current setup where each of these are separate entity types.
Use standard format for exported entities.
Also send thoughts.
Use custom format for archetypes.

This required the EntityKit to be refactored, so that most fields are
pushed into EntityFactory. Due to the nature of how the rule handlers
and the factories interact the code is pretty messy. It works, but it's
tangled and not really clean.
Correctly increase references.
Added first test implementation of entity ref.

Within an archetype you can refer to other entities in attributes by
prefixing their names with a *@" character.
Propertly implement entity references.

Any entity in the same archetype can now be referred to in any attribute
by prefixing the id of it with "@".
Added "human" as a type, made "settler" archetype.
Use more idiomatic way.
Added ability to send an "archetype" as argument.

By setting "objtype" to "archetype" on the argument sent it will be
handled as an archetype instead, and the contents of "entities" and
"thoughts" will be merged into the parent archetype.
Tidied up archetypes.
Fix broken tests.

It would benefit us greatly if we could use a mocking framework.
Moved more types to archetypes.
Improve logging and creation error handling.
Fix incorrect logic.
Provide better error output.
Implement archetype inheritance.
Modify human characters.

Make the different variants more district and add some basic default
thoughts.
Removed test thoughts.