Fix range typing and a typo in range indexing

Arrays of SIQuantities are subtypes of AbstractArray{SIQuantity{T<:Real,...}}. But ranges were just subtypes of AbstractArray{T<:Real}.  This patch makes SI ranges and arrays dispatch more similarly.

Before:

    julia> f{T<:SIUnits.SIQuantity}(::AbstractArray{T}) = "Unitful!"
    f (generic function with 1 method)

    julia> f([1s,2s,3s])
    "Unitful!"

    julia> f(1s:3s)
    ERROR: `f` has no method matching f(::SIRange1{Int64,0,0,1,0,0,0,0})

After:

    julia> f{T<:SIUnits.SIQuantity}(::AbstractArray{T}) = "Unitful!"
    f (generic function with 1 method)

    julia> f(1s:3s)
    "Unitful!"

This also fixes a small typo in range indexing.