vector: Ignore invalid dash arrays
Cairo requires dash arrays to contain at least one positive number and no negative numbers. If this is not true, it will go into an error state and ignore all subsequent calls, leading to broken rendering. This can happen, for example, if the width of the line is 0.
Fixed by checking the dasharray and ignoring it if it's not valid.