Factor cipher mode code out to separate files.
This is a preparation for adding more modes which are more complicated
and thus ask for separate file. For uniformity we do this for all
modes except ECB. It has also the advantage that it makes CPU specific
variants of the code more easy to implement (e.g. the XOR operations).