Fixed up the lines so that when dragging from the output of one operator to the input of another operator, the line splits horizontally instead of vertically. Also made some adjustments for if the line is barely off-center when dragging vertically or horizontally.
Added a check to MultiplicationOperator so that if the product is unfactorable, the product is returned. Trying to get a random factor out of an occasionally empty list was causing the multiplication operator to not show up (may have been part of the cause of unsolvable equations)