Separate FDG.Expr

Define an expression language with pretty printers in FDG.Expr.
Rudimentary simplification is done by the Num and Floating instances.
Only additive and multiplicative identities and multiply-by-zero are
handled for now. Expressions won't be fully simplified, but they won't
have spurious zeros and ones scattered everywhere. Use Numeric.AD for
differentiation.