Fix: MAGN-535 Unable to move node if mouse-click occurs close to...

#### Background
This pull request is meant to fix the following defect:
http://adsk-oss.myjetbrains.com/youtrack/issue/MAGN-535

Along with this fix, there is also minor code refactoring to make the code more readable.

#### Test scenarios
TD can help with more test scenarios that are close to the following:

* Snap-to-port connection should still be possible
* Node movement should be very reliable and accurate
* Cursor during window selection, connection, disconnection should be as expected

#### Unit tests
The following test are all passing (the only failed "CanCreateNewWorksheetInNewWorkbook" is also happening on ChocoButterUI branch, which is currently being investigated):

* DynamoCoreUITests
* DynamoMSOfficeTests (except CanCreateNewWorksheetInNewWorkbook)
* DynamoCoreTests
* DynamoPythonTests
* DSCoreNodesTests

This is a pure UI interaction problem, writing test case for it wouldn't be possible.