Moving this to a new repo is a perfect opportunity for reformatting and ehancements.

My D style has evolved since these modules were first implemented and looking at my old coding style rather irks me. So I've reformatted each module my current preferred style.
Reimplemented selective symbol loading. There is no longer a global callback. Instead, each loader gets its own callback. I think that's a more appropriate design.
Added the enum ShouldThrow as the return result of the missing symbol callbacks to replace bool. The meaning of returning ShouldThrow.No and ShouldThrow.Yes is much clearer than true/false. Even I had forgotten if true meant throw or don't throw.
Added nothrow to some C function pointers.
Internally, SharedLibLoader now takes advantage of 'alias this', which allowed me to remove a few methods from its interface that were only wrappers for SharedLib methods.