partial review for const and final

I've been unable to run tests, so I'd love someone to take a look there.
By "insurance" I meant "instance", but autocorrect felt differently.

@gaurave, re: the variables becoming `final`: the initial values are already assigned directly in the declarations, so additional initialization in the ctor can be done, but isn't required. It is achieved via the optional `{this.canIgnore, this.is error}` in my version. Alternatively, we could remove initial values from the declarations and do `{this.canIgnore: false,...}` here. Finally, if something more complex than just direct assignment of the passed arguments to the variables is required, this can be done as `SparkException(...{bool canIgnore: false,...}) : canIgnore = canIgnore;` — while still keeping the instance variables `final` (this example doesn't do anything "more complex", though).