fixed struct:Set
structs can now somewhat be reloaded (can't change existing structs due to ffi.metatype limitations)
cleanup and some optimizations
bump maps should now be mixed correctly with normals
moved visibility checking to transform
store the default shader values in the shader itself