Minor cleanup
Read config from .bowerrc's in BowerProperties ctor (breaking; multi-part change)
Cleanups
Reorder init sequence in Spark ctor to fix some issues (important for new Bower)

E.g. some events were generated before important listeners were activated, and thus got lost.
New feature: configurable Bower properties based on hierarchical .bowerrc's

* Listen to workspace change events related to .bowerrc's.
* Extract and store local updated configurations from the above in respective folders' metadata.
* When a value from Bower configuration is requested for a given resouce (currently only `packages dir`), aggregate the local configurations stored in the parent's metadata into a final one, and return the value.
Minimak adjustment in templates to new configurable Bower (more to come)
Adjust BowerResolver to new configurable Bower
Remove no-op overrides of Spark methods in SparkPolymer: burdan to maintain

Just hit one that was removed in Spark - initWorkspace()
Properly synchronize Pub/Bower builders, downloaders and template intros during new project workflow

* Downloaders now wait for the builders to finish before downloading packages: important for the new Bower, because _BowerBuilder may change the target packages dir based on .bowerrc's.
* Also wait for the downloaders to finish downloading before displaying intros, as the intros may (and do) request the user to do something with the downloaded packages ("Refactor for CSP").
Merge remote-tracking branch 'upstream/master' into bower-support-for-bowerrc

Conflicts:
	ide/web/spark.dart
Revert accidental change
Remove workaround for a fixed problem
Merge pull request #3576 from ussuri/bower-support-for-bowerrc

Bower: support for hierarchical .bowerrc + some fixes