V4 constructors (take 2)

Hi - I had to do some rebasing. This PR represents what was discussed in https://github.com/JuliaLang/julia/pull/9321.