Store opts in OptionsRecord before applying them.

For example previously the --encoding option triggered immediate
setting of Util::IO.encoding attribute.  Now we store it to @opts
object initially and then afterwards inspect this object to apply
the real effects of the options.

Similarly with several other options.
Move all options classes to options/ dir.
Move defaults also to options processing section.

So related things sit closer together.
Separate parsing and processing of options.

Rename Options::Parser to Options::HelpfulParser - this is the class
that works like Ruby built-in OptionParser, but with improved --help
system.

Use Options::Parser as a name for the class that constructs the
OptionParser object and performs parsing with it, returning
Options::Record object.  While doing so, it tries to do little more than
setting of attributes on Options::Record - it handles converting
filenames to canonical form; reading file contents for --head-html,
--body-html and --css; reading and interpreting the --config JSON
file (and also auto-detection of the latter).

Options::Processor takes care of the rest: expanding filenames,
rendering the footer, configuring various classes, and validating
the options.
Extract Config class from Options::Parser.
Extract Jsb class from Options::Porcessor.
Remove footer formatting from Options::Processor.

Instead format it right where it's actually needed: Web::IndexHtml.
Let Logger class configure itself.
Remove some copy-paste leftover lines.
Let Util::Parallel configure itself.
Let TagRegistry configure itself.
Eliminate the one-line methods in Options::Processor.
Let Js::ExtPatterns configure itself.
Let Util::Json configure itself.
Let Util::IO configure itself.
Extract Validator class from Options::Processor.
Extract InputFiles class from Options::Processor.

Also turn the single Processor.process! method into a static one.