Remove gl.viewportWidth and gl.viewportHeight

The original code setup to user properties on the WebGLRenderingContext
call `gl.viewportWidth` and `gl.viewportHeight`. The issue with these
are (1) they end up looking like part of the WebGL spec which is
confusing for new users and (2) they are not live so they need to be
updated if the canvas changes size.

Instead I changed them to `gl.canvas.width` and `gl.canvas.height`
where appropriate. Also for the perspective matrix I changed them
to `gl.canvas.clientWidth` and `gl.canvas.clientHeight` which
means they'll be correct even if the display size of the canvas
does not match the size of the canvas' backing store. For example
if the canvas is sized using CSS.
Change to utf-8

The examples were using

    <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">

Which is out-dated. Any browser that supports WebGL supports the newer way.
It's also not very socially aware as it's English only.

Changed to

    <meta charset="utf-8">

Which is the modern way as of like 6 years ago and is also internationally
friendly.
Update examples

1.  Got rid of setInterval which is considered bad practice as
    it DOSes the user's machine

2.  Initialized textured to avoid warning.

    Because images are loaded asynchronously and the code does not wait
    for the image to load it can start rendering before the image has been
    downloaded. In that case a rendering warning appears.

        [.WebGLRenderingContext]RENDER WARNING: texture bound to texture unit 0 is not renderable. It maybe non-power-of-2 and have incompatible texture filtering or is not 'texture complete'

    Initializing the texture to a single pixel means the code and render with
    no warnings and the texture will be uploaded if and when the image is
    finally downloaded.
Stop putting properties on WebGLObjects

The problem with putting properties on WebGLObjects is your app
will crash if you ever decide to handle WebGLContextLost events.
The reason is all of the gl.createXXX functions will return null
and so code like this

     var buffer = gl.createBuffer();
     buffer.itemSize = 3;

Will crash because buffer will be null. The simplest solution
is to use JavaScript objects. So for example instead of

     var buffer = gl.createBuffer();
     buffer.itemSize = 3;
     gl.bindBuffer(..., buffer);

We can change it to

     var buffer = { id: gl.createBuffer(); };
     buffer.itemSize = 3;
     gl.bindBuffer(..., buffer.id);

That at least is future proof code.
Merge pull request #4 from greggman/no-gl-properties

Stop putting properties on WebGLObjects
Merge pull request #2 from greggman/utf8

Change to utf-8
Merge pull request #1 from greggman/remove-viewportwidth

Remove gl.viewportWidth and gl.viewportHeight
Merge branch 'greggman-fix-particle-examples'

Conflicts:
	example03/particles-01-noenable.html
	example03/particles-01.html
	example03/particles-02.html
	example03/particles-03.html