Make sure shards aren't nested in DSL.
Don't do anything with shards where there are no components. (Like, maybe, the DEFAULT shard.)
Merge pull request #19 from jstoneham/issue-16

Fixes issue #16.