unmystify the serialization of artifacts

Move the serialization responsibility to Artifact itself.
Do not store parents. They are merely backpointers that can be restored
after loading.

Change-Id: I82b07f6ac07bd74b638985d86635894330743558
Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>