Indentation changes

There are two changes here:

One is removing a python dependency that slipped into the last PR.

The big one is a rewrite of the indentation code. 

When indenting, there is now always a "right" place to indent the code to. This allow functions like `indent-region` to work. 

The `indent-and-newline` function was removed and replaced by specifying chars to use for electric indentation and activating electric indentation mode. 

The only downside is not allowing customization of the indent style. But I'm working on that. (Things like specifying that a line of code with only a comma should be indented one level less than normal)
I have implemented your changes and tested with 24.1, seem to be good if 23 support is not needed.