Smart Materials - Clean branch

<h3> Summary

There is a need for a super simple process for adding bump/normal, spec, and alpha maps to `PhongMaterial`, `GouraudMaterial`, and `SimpleMaterial`. 


<h3> Method

Macros are used to determine what code branch to implement within each shader. The macros are added to the shader programs based on a boolean condition for each texture type. `addTexture` checks the incoming `TextureType` and handles them accordingly.

<h3> Usage

Map support by material:
`PhongMaterial` - Bump/Norm, Spec, Alpha
`GouraudMaterial` - Spec, Alpha
`SimpleMaterial` - Alpha

````java
PhongMaterial myNewMaterial = new PhongMaterial();
myNewMaterial.addTexture(mTextureManager.addTexture(BitmapFactory.decodeResource(mContext.getResources(), R.drawable.diffuseTexture)));
myNewMaterial.addTexture(mTextureManager.addTexture(BitmapFactory.decodeResource(mContext.getResources(), R.drawable.alphaTexture), TextureType.ALPHA));
myNewMaterial.addTexture(mTextureManager.addTexture(BitmapFactory.decodeResource(mContext.getResources(), R.drawable.normalTexture), TextureType.BUMP));

BaseObject3D myObject = newBaseObject3D();
myObject.setMaterial(myNewMaterial);
myObject.addLight(new PointLight());

addChild(myObject);
````