setup browser tests
add Object.create polyfil
preserve prototype chains

this means `clone(a) instanceof a.constructor` will allways be true which is nice. It also means that non enumerable properties such as `constructor` will in affect be copied. At least by reference anyway, it isn't actually possible to tell they are there so they can't be deeply copied as enumerable properties are.