Refactor ctor into small individual parts to allow fine-tuning in SparkPolymer

There should be no meaningful changes in the logic, only moving the code around. Everything seems to work and the tests pass.

@devoncarew