Preserve empty lines when cleaning files.

This was originally submitted for [this feature request](https://sourceforge.net/tracker/index.php?func=detail&aid=3608223&group_id=153444&atid=787794) but I figured a pull request was easier.

More details can be found at that ticket but basically to provides both a global and per-project setting to ignore empty lines when cleaning trailing spaces.  This is because many people prefer their line breaks to be indented at the same level as the code around it.  

So this is a rebased-onto-master version of the original patch, it adds GUI controls in both the global and per-project dialogs and defaults to current default behavior.