Formal series by formula

Earlier FPS design using generator didn't work.
Here is other using formula based on #7618
```
In [7]: s=FormalSeries(x, function=sin(x))

In [8]: s.func(*s.args)
---------------------------------------------------------------------------
UnboundLocalError                         Traceback (most recent call last)
<ipython-input-8-cd8dee6cad9c> in <module>()
----> 1 s.func(*s.args)

/home/sk/src/sympy/sympy/sympy/series/formal.py in __new__(cls, x, *args, **kwargs)
    434             coeff = sum(dense_repr(c, e, k) for c, e in terms(k))
    435 
--> 436         obj = Expr.__new__(cls, x, coeff, k)
    437         obj.x, obj.coeff, obj.k = x, coeff, k
    438         return obj

UnboundLocalError: local variable 'coeff' referenced before assignment
```

https://github.com/sympy/sympy/wiki/Args-Invariant