Features

I added some features. Should of made separate branches instead of one. Worst case we can just create a patch and cherry-pick commits.

What's new
1 -Added new setting to allow the canvas origin to be top-left instead of bottom-left.
2 - Added argument to the callback of chesterGL.loadAsset(); (Code breaker!)
e.g.

```javascript
chesterGL.loadAsset("texture", texturePath, null, function(err, texture) {
	if(err) {
		console.log("Oh no... error loading a texture.");
	}
});
```
3 - Made loadAsset 3rd argument (name) optional so you can place the callback there.
e.g.

```javascript
chesterGL.loadAsset("texture", texturePath, onAssetCallback);
```
4 -  Made all setters on chesterGL.Block return itself to create 'chaining methods'
e.g.

```javascript
this.head = new chesterGL.Block().setTexture("./cdn/head.png").setPosition(this.position[0], this.position[1] - 21, 0);
```

5 - Also fixes bug frame bug

6 - Support for canvas background color to be changed. (WebGL + Canvas)
e.g.
```javascript
chesterGL.settings['backgroundColor'] = [0, 0, 0, 0]; //Transparent
chesterGL.setBackgroundColor([0,0,0,1]); //black background
console.log(chesterGL.getBackgroundColor()); //Will either be array or rgba string
```


Thoughts on number 6 getBackgroundColor. I think maybe I should return an array instead? It's only a RGBA string if webgl mode is disabled. Just so I didn't have it building a RGBA string for canvas every draw tick.