IMPALA-1128: Fix Type.getAssignmentCompatibleType to always be consistent.

Before, in the case where two types were equally compatible (e.g BIGINT and decimal(19,0)),
we'd pick an arbitrary one as the compatible type depending on the order of the input
arguments. This mostly works but makes it harder to verify and reason about.

Change-Id: I4b19da8ef9c894065bc22809967497b927d4e081
Reviewed-on: http://gerrit.sjc.cloudera.com:8080/3727
Reviewed-by: Marcel Kornacker <marcel@cloudera.com>
Tested-by: jenkins
Reviewed-on: http://gerrit.sjc.cloudera.com:8080/3736
Reviewed-by: Nong Li <nong@cloudera.com>