Fix #3055: implement additional simplifications for bessel-type functions

1) add some missing symmetry properties (e.g.: besseli(-1, x) -> besseli(1, x))
2) implement recursive expansion of besseli/j for integer orders (in _eval_expand_func)
3) besselsimp() uses 2) by default
4) apply factor() on the expression, modified by besselsimp()

Now example from the issue looks not so ugly:
```
In [3]: cosine_transform(1/t*sin(a/t), t, w)
Out[3]: 
  ___   ___        ⎛       ___   ___⎞
╲╱ 2 ⋅╲╱ π ⋅besselj⎝0, 2⋅╲╱ a ⋅╲╱ w ⎠
─────────────────────────────────────
                  2                  
```

Remaining part of #3055:
> There are also formulae for expanding Bessel functions of rational
> order under the conditions that for the order it holds that:
> ...
> n - 1/3 \in Z : one-third integer values
> n - 2/3 \in Z : two-third integer values
> We should implement these too.

This can't be done without Airy Ai and Bi functions (already in TODO of bessel.py).