Refactor implicit parsing

Changes:

- Function exponentiation, implicit multiplication, and implicit application are now separate transformation steps.
    - They are still somewhat order-dependent - `sin 2x` only works if implicit multiplication comes before implicit application.
- API remains the same as before.
- `sin 2x` works now. (Before it gave `x*sin(2)`, now it gives `sin(2*x)`.)
- Expanded the docs a bit