Avoid redundantly obtaining stack traces

They impose a surprisingly significant runtime penalty.
Remove vestigial reserved keyword support
Remove vestigial saveWidthWarnings variable

We should deprecate --Wwidth, since it does nothing.
Remove vestigial options
Make isEmittingComponents a property of the backend
replace ioMap/ioCount with simpler mechanism
Fix warning during Scala compilation
Remove insertion sort in Bundle.  WTF?
Factor out global options/global state into Driver

Driver represents the "compiler driver."  Ultimately, there shouldn't be
global state at all; each Chisel run should produce a Driver object, and
each Module would have a reference to the Driver that owns it.  But that's
a more substantial change.

This commit touches a lot of code, but it's mostly just search-and-replace.
Only collect stack traces if an error occurs

Getting stack traces to obtain line numbers was taking 70% of frontend
execution time!!  So now we run once without doing so, and if an error occurs,
we re-run in slow mode.