Fix inconsistency of lexcmp between scalars and single element arrays

Before:

```julia
julia> lexcmp([1.0], [1])
1

julia> lexcmp([1], [1.0])
1
```

After:

```julia
julia> lexcmp([1.0], [1])
0

julia> lexcmp([1], [1.0])
0
```

I'm submitting this as a pull request because 1) I am not sure we want to call `lexcmp` on array elements, as opposed to `cmp`, and 2) at the root of this bug is:

```julia
julia> isless(1.0, 1)
false

julia> isless(1, 1.0)
false

julia> isequal(1, 1.0)
false
```

which I'm not sure is intentional.