Bug 653881 - Rework XBL insertion points and clean up related code to more closely follow the Web Components model. Instead of maintaining a hashtable of insertion points in bindings (and removing insertions points from the tree) leave the insertion points in the tree as explicit placeholders and teach all other relevant code how to walk the explicit children of elements via two iterators (ExplicitChildIterator and FlattenedChildIterator). Note that this patch does not maintain 100% compatibility with the previous code: there are bug fixes and behavior changes included. For example, by having explicit insertion points in the bindings, it is now easier to handle dynamic changes to the bound element correctly (as well as, eventually, handling dynamic changes to the binding correctly). Patch originally by sicking. r=bzbarsky

--HG--
extra : rebase_source : 6926ae8ea57b20f4067b16bd3d7bd85bda854756
Bug 653881 - Push <xbl:children> in ancestor filter. r=bz,dbaron

--HG--
extra : rebase_source : 9aafffadd2451ca7274e99d7e07d0d71ea52ca02
Bug 653881 - Normalize the undisplayed map entry for <xbl:children>. r=dbaron

--HG--
extra : rebase_source : b851a3dc8f5bf576a42f0b639bdd51375413b123
Bug 653881 - Bump the assertion count for 382745-1.xhtml. r=bz

--HG--
extra : rebase_source : e645bf99e368d97aca200c0db4c302a87abf3b1f
Bug 875138 - Update devtools tab to be compatible with XBL refactoring changes. r=jwalker

--HG--
extra : rebase_source : b2eeb09bcdc089b064dc657fdecd2ee548ed5032
Bug 875165 - Update help button style to be compatible with XBL refactoring changes. r=dao

--HG--
extra : rebase_source : 2874a068bc0de77161268810bf6c8daff92ed3e8
Bug 872317 - Make the download indicator toolbar button work with the changes in bug 653881. r=mak77

--HG--
extra : rebase_source : 10c15e0779da5e645584543ef4a642ae341a00be
Bug 887950 - Fix the notificationbar code to deal with additional <xbl:children> elements. r=mstange

--HG--
extra : rebase_source : 003873cfb514874d4f432c7bc7f7657ddac9dcb0
Bug 653881 - Add a compatibility hack to allow <xbl:children> elements to be optional when selecting via the child CSS selector. This allows old CSS selectors selecting default content to continue working in the new world. r=dbaron

--HG--
extra : rebase_source : 4d538fcbd8a6b58408dc46835632a4664ba8d0d8