Add ability to create custom expressions

* Add registration facility for custom AbstractExpressions
* Rework SpecialExpression to ExampleExpression
* Add example documentation