Webglport

Begin porting the webglport examples.
- Port over lesson01. This doesn't compile due to the following:
```
[ERROR] Error: build/src/i386/HL_Functions.mm:38:31: error: unknown type name 'GLuint'; did you mean 'uint'?
        auto buffers$1 = static_cast<GLuint *>(HyperloopJSValueToVoidPointer(ctx,arguments[1],exception));
                                     ^~~~~~
                                     uint
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator7.1.sdk/usr/include/sys/types.h:92:23: note: 'uint' declared here
typedef unsigned int            uint;           /* Sys V compatibility */
                                ^
build/src/i386/HL_Functions.mm:39:2: error: use of undeclared identifier 'glGenBuffers'
        glGenBuffers(n$0, buffers$1);
        ^
build/src/i386/HL_Functions.mm:49:31: error: unknown type name 'GLuint'; did you mean 'uint'?
        auto buffers$1 = static_cast<GLuint *>(HyperloopJSValueToVoidPointer(ctx,arguments[1],exception));
                                     ^~~~~~
                                     uint
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator7.1.sdk/usr/include/sys/types.h:92:23: note: 'uint' declared here
typedef unsigned int            uint;           /* Sys V compatibility */
                                ^
build/src/i386/HL_Functions.mm:50:2: error: use of undeclared identifier 'glDeleteBuffers'
        glDeleteBuffers(n$0, buffers$1);
        ^
build/src/i386/HL_Functions.mm:61:2: error: use of undeclared identifier 'glBindBuffer'
        glBindBuffer(target$0, buffer$1);
        ^
build/src/i386/HL_Functions.mm:73:2: error: use of undeclared identifier 'GLvoid'; did you mean 'void'?
        GLvoid * arguments_2_ptr = nullptr;
        ^~~~~~
        void
build/src/i386/HL_Functions.mm:78:38: error: unknown type name 'GLvoid'; did you mean 'void'?
                arguments_2_ptr = reinterpret_cast<GLvoid *>(static_cast<size_t>(arguments_2_num));
                                                   ^~~~~~
                                                   void
build/src/i386/HL_Functions.mm:83:63: error: use of undeclared identifier 'GLvoid'; did you mean 'void'?
                auto arguments_2_buf2 = static_cast<Hyperloop::NativeObject<GLvoid *> *>(arguments_2_buf);
                                                                            ^~~~~~
                                                                            void
build/src/i386/HL_Functions.mm:88:51: error: unknown type name 'GLvoid'; did you mean 'void'?
        glBufferData(target$0, size$1, static_cast<const GLvoid *>(data$2), usage$3);
                                                         ^~~~~~
                                                         void
build/src/i386/HL_Functions.mm:88:2: error: use of undeclared identifier 'glBufferData'
        glBufferData(target$0, size$1, static_cast<const GLvoid *>(data$2), usage$3);
        ^
build/src/i386/HL_Functions.mm:100:2: error: unknown type name 'GLchar'
        GLchar *const * arguments_2_ptr = nullptr;
        ^
build/src/i386/HL_Functions.mm:105:38: error: unknown type name 'GLchar'
                arguments_2_ptr = reinterpret_cast<GLchar *const *>(static_cast<size_t>(arguments_2_num));
                                                   ^
build/src/i386/HL_Functions.mm:110:63: error: use of undeclared identifier 'GLchar'
                auto arguments_2_buf2 = static_cast<Hyperloop::NativeObject<GLchar *const *> *>(arguments_2_buf);
                                                                            ^
build/src/i386/HL_Functions.mm:110:71: error: expected expression
                auto arguments_2_buf2 = static_cast<Hyperloop::NativeObject<GLchar *const *> *>(arguments_2_buf);
                                                                                    ^
build/src/i386/HL_Functions.mm:114:30: error: unknown type name 'GLint'
        auto length$3 = static_cast<GLint *>(HyperloopJSValueToVoidPointer(ctx,arguments[3],exception));
                                    ^
build/src/i386/HL_Functions.mm:126:30: error: unknown type name 'GLint'
        auto params$2 = static_cast<GLint *>(HyperloopJSValueToVoidPointer(ctx,arguments[2],exception));
                                    ^
build/src/i386/HL_Functions.mm:127:2: error: use of undeclared identifier 'glGetShaderiv'
        glGetShaderiv(shader$0, pname$1, params$2);
        ^
build/src/i386/HL_Functions.mm:138:30: error: unknown type name 'GLsizei'
        auto length$2 = static_cast<GLsizei *>(HyperloopJSValueToVoidPointer(ctx,arguments[2],exception));
                                    ^
build/src/i386/HL_Functions.mm:159:2: error: use of undeclared identifier 'glGetShaderInfoLog'
        glGetShaderInfoLog(shader$0, bufsize$1, length$2, infolog$3);
        ^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.

    at checkResults (/Users/cwilliams/repos/hyperloop-common/lib/compiler/clang.js:94:12)
    at Object.q.drain (/Users/cwilliams/repos/hyperloop-common/lib/compiler/clang.js:167:4)
    at next (/Users/cwilliams/repos/hyperloop-common/node_modules/async/lib/async.js:723:31)
    at /Users/cwilliams/repos/hyperloop-common/node_modules/async/lib/async.js:24:16
    at /Users/cwilliams/repos/hyperloop-common/lib/compiler/clang.js:161:6
    at ChildProcess.exithandler (child_process.js:645:7)
    at ChildProcess.emit (events.js:98:17)
    at maybeClose (child_process.js:755:16)
    at Socket.<anonymous> (child_process.js:968:11)
    at Socket.emit (events.js:95:17)
[ERROR] Hint: If you think you have found a bug, run again with --report to report it.
[ERROR] Running with --debug can also give you more information on what is going wrong.
[ERROR] Error: build/src/i386/HL_Functions.mm:38:31: error: unknown type name 'GLuint'; did you mean 'uint'?
        auto buffers$1 = static_cast<GLuint *>(HyperloopJSValueToVoidPointer(ctx,arguments[1],exception));
                                     ^~~~~~
                                     uint
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator7.1.sdk/usr/include/sys/types.h:92:23: note: 'uint' declared here
typedef unsigned int            uint;           /* Sys V compatibility */
                                ^
build/src/i386/HL_Functions.mm:39:2: error: use of undeclared identifier 'glGenBuffers'
        glGenBuffers(n$0, buffers$1);
        ^
build/src/i386/HL_Functions.mm:49:31: error: unknown type name 'GLuint'; did you mean 'uint'?
        auto buffers$1 = static_cast<GLuint *>(HyperloopJSValueToVoidPointer(ctx,arguments[1],exception));
                                     ^~~~~~
                                     uint
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator7.1.sdk/usr/include/sys/types.h:92:23: note: 'uint' declared here
typedef unsigned int            uint;           /* Sys V compatibility */
                                ^
build/src/i386/HL_Functions.mm:50:2: error: use of undeclared identifier 'glDeleteBuffers'
        glDeleteBuffers(n$0, buffers$1);
        ^
build/src/i386/HL_Functions.mm:61:2: error: use of undeclared identifier 'glBindBuffer'
        glBindBuffer(target$0, buffer$1);
        ^
build/src/i386/HL_Functions.mm:73:2: error: use of undeclared identifier 'GLvoid'; did you mean 'void'?
        GLvoid * arguments_2_ptr = nullptr;
        ^~~~~~
        void
build/src/i386/HL_Functions.mm:78:38: error: unknown type name 'GLvoid'; did you mean 'void'?
                arguments_2_ptr = reinterpret_cast<GLvoid *>(static_cast<size_t>(arguments_2_num));
                                                   ^~~~~~
                                                   void
build/src/i386/HL_Functions.mm:83:63: error: use of undeclared identifier 'GLvoid'; did you mean 'void'?
                auto arguments_2_buf2 = static_cast<Hyperloop::NativeObject<GLvoid *> *>(arguments_2_buf);
                                                                            ^~~~~~
                                                                            void
build/src/i386/HL_Functions.mm:88:51: error: unknown type name 'GLvoid'; did you mean 'void'?
        glBufferData(target$0, size$1, static_cast<const GLvoid *>(data$2), usage$3);
                                                         ^~~~~~
                                                         void
build/src/i386/HL_Functions.mm:88:2: error: use of undeclared identifier 'glBufferData'
        glBufferData(target$0, size$1, static_cast<const GLvoid *>(data$2), usage$3);
        ^
build/src/i386/HL_Functions.mm:100:2: error: unknown type name 'GLchar'
        GLchar *const * arguments_2_ptr = nullptr;
        ^
build/src/i386/HL_Functions.mm:105:38: error: unknown type name 'GLchar'
                arguments_2_ptr = reinterpret_cast<GLchar *const *>(static_cast<size_t>(arguments_2_num));
                                                   ^
build/src/i386/HL_Functions.mm:110:63: error: use of undeclared identifier 'GLchar'
                auto arguments_2_buf2 = static_cast<Hyperloop::NativeObject<GLchar *const *> *>(arguments_2_buf);
                                                                            ^
build/src/i386/HL_Functions.mm:110:71: error: expected expression
                auto arguments_2_buf2 = static_cast<Hyperloop::NativeObject<GLchar *const *> *>(arguments_2_buf);
                                                                                    ^
build/src/i386/HL_Functions.mm:114:30: error: unknown type name 'GLint'
        auto length$3 = static_cast<GLint *>(HyperloopJSValueToVoidPointer(ctx,arguments[3],exception));
                                    ^
build/src/i386/HL_Functions.mm:126:30: error: unknown type name 'GLint'
        auto params$2 = static_cast<GLint *>(HyperloopJSValueToVoidPointer(ctx,arguments[2],exception));
                                    ^
build/src/i386/HL_Functions.mm:127:2: error: use of undeclared identifier 'glGetShaderiv'
        glGetShaderiv(shader$0, pname$1, params$2);
        ^
build/src/i386/HL_Functions.mm:138:30: error: unknown type name 'GLsizei'
        auto length$2 = static_cast<GLsizei *>(HyperloopJSValueToVoidPointer(ctx,arguments[2],exception));
                                    ^
build/src/i386/HL_Functions.mm:159:2: error: use of undeclared identifier 'glGetShaderInfoLog'
        glGetShaderInfoLog(shader$0, bufsize$1, length$2, infolog$3);
        ^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
[ERROR] Hint: If you think you have found a bug, run again with --report to repo
```