Add Compat.jl as a dependency, rename String -> AbstractString

Also allow testing through Pkg.test()