Handle multi-select

The plugin iterates through the selections and makes for every selection a search for "suitable" rows. This rows get added to the `rows` property. After the iteration and before the alignment begins, the plugin removes possible duplicates in the list.

Also I changed some of the functions. They now recieve the rows they should work on and return them rather than working all the time on `self.rows` or `self.start_row`. This adds more clarity to the code imo (what is used where and how).

And I removed trailing spaces.

Hope you are okay with this changes.