Introduced interface Algorithm and default classes

* Created the Algorithm interface as a base interface for all algorithms
* Changed the SceneAlgorithm to be a subclass of Algorithm
* Created default implementations for Algorithm and SceneAlgorithm
  that may be extended by Algorithm implementations to avoid reimplementation
  of boilerplate code
* Ported fortune, spip, monotonepieces, chan to use these interfaced