Add `hearing` flag to all entities

It seems rather wasteful to broadcast descriptive messages to entities
that probably don't have a player attached to them (rooms, items, and so
on), so, by default, entities are considered non-hearing, and any call
to entity.tell() will basically be a no-op.

This sort of entity state might be better as a component, actually...
but this works for now.
Rename `tick_every` to `tick_interval`
Add silly clock noises to ticker debug output
Remove hacky in-place restart thing

For now, I think the best bet will be to add a "daemon mode" flag to
`figment run`, and to use your init system or other process manager to
restart the daemon when necessary.
Remove dead code (CommandArgument)

This was used in an earlier iteration of DisambiguationMode, but it's
unused now and probably wasn't the best approach anyway.
Refactor handling of config specification

You must now specify the path to the world directory itself rather than
the config file within the world directory.
Rename "descriptor" to "selector"

The word "descriptor" has another meaning in Python, so this concept
should be termed "selector" instead to avoid confusion.
Add back YAML config support

As an optional dependency this time!
Add support for YAML zone snapshots

These are slower to generate but much easier to read. Might be useful
for debugging small worlds.
Remove explicit dot from default world path

os.path.join handles the empty string just fine.
Read Redis connection info from world config
Explicitly display which snapshot is being loaded