Add FreeBSD support to the codebase.

Note that, for some reason, FreeBSD's `GL.h` and `GLext.h` are missing quite a few extension prototypes; this pull request uses GLEW to correct the following:

```
glcontext_egl.cpp
In file included from ../../../src/glcontext_egl.cpp:9:0:
../../../src/renderer_gl.h: In member function 'GLuint bgfx::SamplerStateCache::add(uint32_t)':
../../../src/renderer_gl.h:493:4: error: 'glGenSamplers' was not declared in this scope
../../../src/renderer_gl.h: In member function 'void bgfx::SamplerStateCache::invalidate(uint32_t)':
../../../src/renderer_gl.h:516:5: error: 'glDeleteSamplers' was not declared in this scope
../../../src/renderer_gl.h: In member function 'void bgfx::SamplerStateCache::invalidate()':
../../../src/renderer_gl.h:525:5: error: 'glDeleteSamplers' was not declared in this scope
In file included from ../../../src/glcontext_egl.cpp:9:0:
../../../src/renderer_gl.h: In member function 'uint64_t bgfx::QueriesGL::getResult(uint16_t) const':
../../../src/renderer_gl.h:749:66: error: 'glGetQueryObjectui64v' was not declared in this scope
```

`grep` indicates that these prototypes do not exist outside of `glew.h`, and it's likely that they have to be pulled in from driver-specific shared objects on FreeBSD (e.g., `libnvidia-glcore.so`).