Added eltype for tuples when members all have the same type

Right now, calling eltype on a tuple always returns `Any`.  This patch allows `eltype` to be more specific if all of the tuple members have the same type:

```julia
julia> eltype(("A","B","C"))
ASCIIString (constructor with 1 method)

julia> eltype((1,2,3))
Int64

julia> eltype((1,2,'c'))
Any
```