Bug Fix: Crash when adding custom shader

Looks like the arguments to BKE_libblock_alloc have changed, updating
BKE_shader_add to reflect this.
BGE Shaders: Adding file read/write support

These changes were ported from the Harmony SVN branch
BGE Shaders: Basic viewport support

Shaders are now visible in the viewport, however uniforms do not work.
BGE Shaders: Uniform support for viewport

Float (including the veector variations) work in the viewport. Support for
other data types will require more work.