Make promotion blocks customisable

Original PR is https://github.com/tangentlabs/django-oscar/pull/549

I've made the docs a bit more descriptive and rebased against master so it can be merged.