give connectOutside a reasonable behavior even when one or both endpoints has no trace

It used to simply draw no arrow if either trace returned Nothing.  A
better default is to simply use the location of the endpoint instead.
This way an arrow is *always* drawn.  It also allows things like drawing
an arrow between a named point (which has no trace) and the boundary of
some object.