MAGN-1429 : Need snapping in inputs

This is the fix for port snapping issue. 

Today, the connector is not snapped to the ports automatically. Every time the user has to drag the connector on to the port and click the port to get an active connection.

After this Fix, When the connector is dragged near the port, it will get snapped to the port immediately. The connection will be showed as dotted lines, indicating the possible path to the port. When the port is clicked, the connection will be made active. 

http://adsk-oss.myjetbrains.com/youtrack/issue/MAGN-1429

- [ ] @pboyer 
- [ ] @Steell 
- [ ] @Benglin 
- [ ] @ikeough 
I neither agree nor disagree with this one, some told me if I do curly brackets around single-line condition body, I'll be mistaken as fresh graduate ;)

So I usually end up with:

```csharp
if (e != null)
{
    // I don't think 'e' will ever be 'null'...
    curClick = new MouseClickHistory(sender, e);
}
```

Come to think about it... I don't think ```e``` will ever be ```null```, what's happening here? If we don't create ```curClick``` it will eventually crash ```CheckIsDoubleClick``` (but of course in this case ```curClick``` will always be non-null).