Detect cycles involving types bounded by singleton types

This fixes #193.
Merge pull request #195 from smarter/fix/singleton-cycles

Detect cycles involving types bounded by singleton types