make RDSE the default encoder for scalars

this creates a meta-class ScalarEncoder that provides (compatibility) constructor(s) for the "best scalar encoder"-implementation, should we want to change that in future again. 

Today's `ScalarEncoder` is renamed to `SimpleScalarEncoder`.

TODO:
[ ] what to do about all the tests, that fail due to the different inner-workings of RDSE/(Simple)ScalarEncoder ? 

Fixes: #1669 
@chetan51 before any work on the tests, we need to decide how to handle the wrapper constructor from old ScalarEncoder: 
`RDSE(resolution, n=opt, w=opt)` vs `Scalar(w, minval, maxval, n=opt, resolution=opt)` - what to do with the optional params to RDSE? 

* We could ignore them completely (and put warning in the init() so users dont swarm over them!:) )
* use just `w` and set `n` to n=11*w which is said to be optimal value for RDSE.