Implement measure and layout so that non-fixed sizes can be used

This series of changes allows non-fixed sizes to be used, by measuring the first child in onMeasure in a similar way to ListView. This makes ViewFlow a lot more useful. In addition, it adds fading edge support. This optionally adds extra padding to either side of the child view, so the neighbouring child views can be partially displayed, fading out towards the edge. Although fading edge is out of fashion in Android these days, for this kind of view it can make the swipe-to-next-page affordance a lot clearer to users.

Also, the branch fixes what's arguably a bug in CircleFlowIndicator, where stroked circles are larger than filled circles. A stroked circle's radius is to the centre of the stroke, not the outside, so if you use the same radius for both, the stroked circle is larger. This change avoids that problem by adjusting the size if stroke is used. The visible effect of this is that if you use the common technique of having inactive pages stroked and the active page filled in a different colour, the stroke is no longer visible around the outside of the active page's circle.