Start with a channel optimisation example
Rename files
Add an example for optimising the layout of a farm

Not working yet
Merge branch 'next' into optimization_example
Add channel example to documentation
Improve conversion of FrozenDicts to str
Upgrade OTF to dolfin-adjoint dev
Merge branch 'next' into optimization_example
Fix doc link to coupled sw solver
More work on the channel optimization example
Merge branch 'next' into optimization_example
Merge branch 'next' into optimization_example
Merge remote-tracking branch 'origin/optimization_example' into optimization_example
Merge branch 'next' into optimization_example
Move the functional to the ReducedProblem
Rename Configuration -> TidalFarm
Parametrize the ReducedFunctional
Avoid defining functions within functions
Hide internal ReducedFunctional methods from docs
Remove unused functions from ReducedFunctional