Make outline view resizable + improve outline toggle button

Scrolling in the ouline view is out of sync
Merge remote-tracking branch 'upstream/master' into resizable-outline-and-better-button

Conflicts:
	ide/app/spark.dart
Merge remote-tracking branch 'upstream/master' into resizable-outline-and-better-button
Fix scrolling synchronization for good, supposedly
Fix typo in prev commit
Significant rewrite: single coordinate system, flat item list, no artificial scroll target
OutlineItems self-add to passed down Outline.outlineItems

Symmetry with OutlineClass adding its members + control over which items get added and in what order (important for searching in the now flat outlineItems).
Clip incorrect offset ranges for class top-node and ctor to their true sizes

As provided by Ace (?), they both span the entire class's definition (for constructors, it's likely a bug), which is not what we want when highlighting or scrolling them into view.
Remove debugging stuff
Bug fixes to commit before last
Use `anchor`, not `element`, to pull items into view
Fix git pull.
Update localHead on git pull.
Refresh treeView on pull complete.
To scroll: find new item intersecting offset range, not overlapping one end of range

This deals with holes in the offset ranges of items in _outlineItems: before, if the new offset from Ace fell into a hole, scrolling wouldn't happen. Now it would scroll to the item just before or after the hole (the one that's just entered the changed offset range).
Fix: restore previous scrolled position after switching back to a file
Merge remote-tracking branch 'upstream/master' into resizable-outline-and-better-button

Conflicts:
	ide/app/spark_polymer.css
Adjust outline button's style
Merge remote-tracking branch 'upstream/master' into resizable-outline-and-better-button

Conflicts:
	ide/app/spark_polymer.css
Fix typo