Basic configuration file support, with resolution.
Port movement controls to config file.
Do not treat unrecognized configurations as fatal errors.
Treat empty configuration values as fatal errors.
Support specifying arrow keys for movement.
Generalize key bind configuration.

Do not require mapping of single characters.
Default-initialization handler.
Make chat key case insensitive.
Migrate remaining settings.

Prefix left/right with strafe.
Print errors to stderr.
Make configure() return 0 on success.
Document configuration file.
Rename sample config file to sample.profile.ini

This is so Craft doesn't read the sample file, so that users won't be
encouraged to edit it and so they can make their own files that Git
won't watch.
Add function declarations.