Modular handling of externals
Instead of having the main module import the single dlt._externals file, it
now imports files based on the type. For example, if you do:
import dlt.io: Printer
class Main:
in Printer stdout
Then it calls '_externals.dlt.io.stdout()' to get the object. This avoids
creating dependencies on modules and symbols we don't need, and makes it easier
to extend the library with new externals.
A related change is that SystemExit is now part of object.d and handled by the
normal D main invoker. This was being handled by a method on the old Externals
object.