Make models for contrib.oscar_fancypages abstract

Split the models in the ``contrib.oscar_fancypages`` module into
separate abstract and concrete models. This makes them easier
extensible.

This commit also includes some minor changes in string formatting of the
models' ``__unicode__`` methods.

Resolves #27.