IE8 compatibility

Changed to an older version of jasmine that supports ie8
Include shims and shams when testing in ie<9
removed places where ie8 would overwrite closed over variables with named local functions.
Made a version of getPrototypeOf that works slightly more of the time than the common sham.
Use getOwnProperty to avoid picking up methods provided by shims/shams.
Overwriting an argument inside the function also changes the arguments object in ie8, stopped doing that.