Several bug fixes

* changeNode should now procude a valid solution upon shaking
* changeColor should now iterate over partitions, not nodes
* vns now prints the reason for invalid solutions