Don't return from inside UNWIND_PROTECT.
Don't rely on ECL_CATCH_ALL_IF_CAUGHT block running.

C++-style exceptions will bypass the IF_CAUGHT block and exit the
CATCH_ALL region, so errors should be returned after the protected
region's been exited.
Return an error whenever we didn't succeed.

Just in case there's some other sort of condition or signal or whatnot.
Always cl_shutdown() before returning error from shecl_boot().
Remove empty ECL_CATCH_ALL_IF_CAUGHT blocks.
Handler lisp-side errors by binding *debugger-hook*.

Binding *debugger-hook* properly handles the distinction between SIGNAL
and ERROR, and fixes an issue where SIMPLE-PACKAGE-ERROR wasn't a
SERIOUS-CONDITION.
Add shecl-bootstrap system.
Take the *load-truename* directory as a parameter to BOOTRSTRAP.

Turns out that *load-truename* is NIL when loading a .fasb, so we need
to pass it in from outside.
Convert from a string to a pathname before using MERGE-PATHNAMES.
Handle errors inside BOOTSTRAP.
Set up the SYS logical pathname and load asdf from ECL's directory.
Fix indentation.
Refactor to support multiple argv arguments.
Remove duplicate assignment.
Pass the bootstrap fasl path to shecl_boot().
Use the bootstrap system to do initialization.
Specify the encoding for FOREIGN-STRING-ALLOC.
Install the bytecode compiler on startup.