`wait_for_motion` can pass with non-consecutive positive `MotionResults`

wait_for_motion's `consecutive_frames` parameter now accepts "fractions"
(in the form of a string†) in addition to integer values. This
modification means that, despite the parameter name, wait_for_motion
does *not* have to detect consecutive motion frames for it to pass.
Instead, only a specified proportion of a series of consecutive frames
must return positive `MotionResults` in order for wait_for_motion to pass.

The key reason for this implementation is the realisation that it is not
necessarily correct to assume that all video from a set top box will
contain constant, uninterrupted motion, or that all content will have been
captured at the same frame rate at which it is transmitted. For example,
CCTV footage and home movies often are captured at lower framerates than
professional standard video; and cartoons and other animations are
sometimes produced at 12 frames per second (or "twos"[1]). The new
wait_for_motion accommodates for situations such as this, although it is
still necessary to predict occurrences where this might be pertinent.

† The reason for having a string "fraction" rather than using python's
fraction type[2] is that the fraction type automatically simplifies so
that, for example, a input fraction of "10/20" gets reduced to "1/2",
whereas a literal string will not alter itself. All that is required to
interpret the string is some string parsing which python handles well.
In this way, strictly speaking, the parameter value is *not* a fraction,
because we are not treating it as a proportion which can be scaled - we
are just using this as a format to dictate to wait_for_motion the minimum
conditions for passing.

[1] http://en.wikipedia.org/wiki/Traditional_animation#.22Shooting_on_twos.22
[2] http://docs.python.org/2/library/fractions.html

[Committer's note: In a future release we may change the default
consecutive_frames from 10 to "10/20".]