Add str2var(), str2val() functions

Add helper functions for converting strings to variables.
Separate validation logic from defaults

Move code for validating options out of defaults.sh and into its
own file.
Change redb_lookup() usage

Look for a leading '^^' instead of '^' when replacing with the
second argument. This makes entries in the redb less ambiguous --
an entry of "^foo" is really trying to match the beginning of the
line, and an entry of "^^foo" really wants the substitution to
happen.
Expose RE_* variables for redb entries

For each entry foo-bar in the regex db, expose a variable $FOO_BAR
in clicraft's environment, to be used within action scripts.

My first pass at implementing this in defaults.sh used the following
naive approach, which caused `clicraft version` to take an order of
magnitude longer to run.

for re in $(grep -o "^[^ ]*" "$DB"); do
	declare "$(str2var "RE_$re" upper)=$(redb_lookup "$re" "$RE_TIMESTAMP")"
done
Simplify and use $RE_* variables

Remove leading "cmd/" and "start/" from redb keys, and use RE_*
variables instead of littering the code with redb_lookup() calls.
Fix escape chars getting clobbered in $RE_* vars
Fix str2val calls
Validate $RE_START

This variable is necessary for `clicraft start` to work, which is
why we check its existence and not other $RE_* variables.
Update starmade for recent clicraft changes
Read in $RE_* variables after validating $DB
Refactor $DB -> $REDB
Don't remove validate.sh in distclean target
Make REDB a documented clicraft.conf option
Document str2var(), str2val()
Document new options in clicraft-actions.5
Format strings correctly

Make sure nothing passed to the format string of printf can have
user-defined data in it.

In addition, do this with an eye towards making i18n as painless
as possible, in case we ever decide to support it in the future.
Use consistent equality operator

s/=/==/
Update copyright