Attempt at fixing ambiguity warnings.

If you haven't noticed, DataArrays now generates about a gazillion ambiguity warnings. Here's an attempt at fixing them.

However, the tests don't all pass for me. It fails on line 70 of `test/data.jl`, which looks like:
```julia
@assert isequal(pdvstr[[true, false, true, false, true, false, true]],
                    @pdata(["one", "two", NA, "one"]))
```
But I don't understand how this test was ever passing in the first place, since `isequal` invokes this code in operators.jl:
```julia
function Base.(:(==))(a::AbstractDataArray, b::AbstractDataArray)
    size(a) == size(b) || return false
    has_na = false
    for i = 1:length(a)
        if isna(a[i]) || isna(b[i])
            has_na = true
        else
            a[i] == b[i] || return false
        end
    end
    has_na ? NA : true
end
```

And according to that returning `NA` (and not `true`) is what is supposed to happen. So I'm confused.