Bug 863658. Replace mozilla-banner image use in reftest for bug 28811 with a plain blue image.  r=jmuizelaar

Different timing of image decodes finishing means we paint them into surfaces of different sizes (the surface sizes are based on what part of the page we need to repaint). This means that small fractional pixel differences in cairo can result in a different image when bilinearly resizing it.
Bug 847223. Part 1. Use a hashtable instead of an array to store list of visible images on the presshell. r=mats
Bug 847223. Part 2. Add a function to remove an image from the visible list. r=mats
Bug 847223. Part 3. Factor out the expand the scrollport code so we can use it on individual images later. r=mats
Bug 847223. Part 4. Tweak the ExpandRect function to not expand in a direction that we cannot scroll. r=mats
Bug 847223. Part 5. Make AssumeAllImagesVisible usuable outside of PresShell. r=mats
Bug 847223. Part 6. Use the first reflow of relevant image frames to add/remove them from the visible list. r=mats
Bug 847223. Part 7. Stop assuming all images are visible on frame create. r=mats
Bug 847223. Part 8. Use a bool to track if FrameCreate has been called. r=mats
Bug 847223. Part 9. Try to avoid asking for a decode of an image whose network request finishes before painting is unsuppressed. r=joe,mats
Bug 847223. Part 10. Make the new code work when we have the image visibility analysis prefed off. r=mats