Allow subview layering to be changed

I wanted to change the layering of the subviews so that the second
subview was behind the first subview (in my case, I have a UI element
in the first subview that deliberately oversteps its clipping bounds
for effect).  However, simply sending the second subview to the back of
contentView changed the iteration order during the layout process,
causing the subviews to be visually reordered.

This change uses a mutable array to track the subview addition order
distinctly from the layering order, and allows bringSubviewToFront: and
sendSubviewToBack: to work as callers would expect.
Preserve project code style
Try an alternative interface suggested by Ole

Rather than proxying bringSubviewToFront/sendSubviewToBack, expose the
content view as the the interface, and have the content view notify the
scroll view of additions and removals so that the latter can update its
layout.
Merge pull request #2 from joehughes/master

Allow subview layering to be changed