src/js/xor128.js
function XOR128(x, y, z, w) {
    if ((x && x < 1) || (y && y < 1) || (z && z < 1) || (w && w < 1)) {
        throw new Error('Invalid Seed');
    }

	this.x = x ? x : Math.random() * 4294967296;
	this.y = y ? y : Math.random() * 4294967296;
	this.z = z ? z : Math.random() * 4294967296;
	this.w = w ? w : Math.random() * 4294967296;
}
function XOR128(x, y, z, w) {
    if ((x && x < 1) || (y && y < 1) || (z && z < 1) || (w && w < 1)) {
        throw new Error('Invalid Seed');
    }

	this.x = x ? x : Math.random() * 4294967296;
	this.y = y ? y : Math.random() * 4294967296;
	this.z = z ? z : Math.random() * 4294967296;
	this.w = w ? w : Math.random() * 4294967296;
}
XOR128 pseudo-random number generator. This is based off of algorithm found on the XORSHIFT wiki here:
http://en.wikipedia.org/wiki/Xorshift. Also the code ensures all numbers are handled as unsigned 32bit integers and
is consistent with the C++ example provided xor128.cpp

@param {Number} x
@param {Number} y
@param {Number} z
@param {Number} w
@returns {SeededRandomNumber}