Canvas: Improve Readability of Long Arrow Labels

Use case or problem

When working on a large canvas you can run into an issue where the arrow between to linked nodes is so long the label for the arrow is off the screen reducing the effectiveness of the label.

Proposed solution

Allow the user to set an option to keep labels of the arrow on either end of the arrow. Alternatively this could be automagical through some calculation of zoom level which moves the label to stay on screen if either end is visible.

Current workaround (optional)

Extra scrolling.