Refactor.
Use a context stack instead of weak referencing.

This fixes an issue where sometimes, a set would be created multiple times
during the recursive creation of a single fixture.
Fix issue where an instantiated foreign set would not be properly cached.

The logic now is that as long as a reference is held to the instantiated set,
a weak reference will resolve it such that a set is not created twice. This
has been made clear in the documentation which has also been improved somewhat
(both wording and formatting).
Fix case where a set is instantiated in a distillery callable.

A test case has been added to show this.
Merge pull request #3 from malthe/master

Fix weak referencing issue.