use performance.now() when available

With performance.now() we can get more precision.
For ex. PHP version of microtime(true) has up to 6 digits after point. Using performance, the Js version returns the save precision.

I also replaced `var s = parseInt(now, 10);` with `var s = now | 0;`, because it is much faster,
and also `new Date().getTime()` with `Date.now()` for the same reason: [speed](https://duzun.me/playground/js_speed#c=d%20%3D%20Date.now()%3B%20%2F%2F%20330%0A%2F%2Fd%20%3D%20new%20Date().getTime()%3B%20%2F%2F%20625%0A%2F%2Fd%20%3D%20%2Bnew%20Date%3B%20%2F%2F%201048&d=console.log(d)%3B&i=var%20d%3B&n=1000000)