Fix #104 and #105

Refactor how we go about allocating, deallocating, starting and stopping
decoders. This introduces some violation of encapsulation (just think of
PiEncoder as a friend class of PiCamera), but there's not much I can do
about that: the camera class has to be the one to start and stop the
video port as it's the only thing that "knows" about how many encoders
are attached to the splitter.
Factor capture timeout into a class attribute
Fix #103

Well, that was easier than expected...

Conflicts:
	picamera/encoders.py
Close #94

Add the concept of multiple outputs to the encoder classes and have the
write callback decide which named output each buffer gets written to.
Also added a pile of recipes covering capturing, analysing and using the
motion vector data Also added a pile of recipes covering capturing,
analysing and using the motion vector data.
Silly error on shutdown in close()
Add some xfails for max. res GIFs and BMPs
Add tests for #94