Holy Jeebus textures are a bloody nightmare! Lots of things being
started in this push, all based around textures.
* Most of what has been done to shaders feels SOOOO hacky, but the goal is
  just to get to a point where I have something to refactor.
  I have added support for sampler uniforms. So much of this feels wrong
  behaviour wise (demanding texture for each draw, rebinding active-texture
  loads, UGH!...but again we need a pile of clay to make a pot.
* I have expanded the gpu-array-t and texture types and made the pretty-print
  better.
* I have the basics of texture upload in place. Needs tonnes of expanding and
  I still havent found a beautiful way to handle pixel formats or internal o
  formats
* Added a way to find the sampler type from a texture-type and a internal-format
* Fixed some terminology
* made texref work properly, it now returns a gpu-array-t
* stubbed out gl-pull and push
* Added the backed-by generic function - tells you what kind of gpu-array it
  is.
* Added byte vectors to cffi-extra-primitive-types
* examples/11 shows the generation and use of a random texture.
  This is about the only configuration that will work right now.
* added gl-extras, this has a few functions not available in c-opengl
* image-format-fucking-nightmare, is a file full of desperation. it will
  die soon but it currently houses mutant ideas not fit for mortal eyes
Had a bit of a tidy-up
* destructuring-populate is now c-populate
* Merged the cffi extra type macros
* removed gpu! and gl! as for now they make no sense.
  (needs to handle multidimensions)
* removed classes that are not being used in textures yet
* Tidied up package.lisp
* added v!byte v!ubyte and v!int for creating lisp vectors
  of restricted types
Starting to form ideas for breaking down the pixel problem
more notes
Finally a break on how I want to do pixel format, I have hashed out
a small file that implemnts the basics of this. I will be trying
out ways of using them for c-arrays, glstructs and gpu-arrays.

* First dump of pixel-format code
* Added the cffi types :byte and :ubyte
* removed the old image-format file as it just contained scraps of
  ideas
* Played some more with example 11, it is pretty cool now
* Can get calculate internalFormats from pixel-formats and vice versa
* removed un-needed file (too much code fragmentation)
* added the spreadsheet I am using to work all the format stuff out
Changed gitignore to ignore libreoffice lock files
Pixelformats are now in place! Decent foreign and local formats for data can be inferred or overrided at will
Very ugly right now.
* textures can take nothing but a c-array and infer all data they need
* internal format can be a pixel-format an it will extract a matching internalType
* dimensions is now a keyword argument
* Added upload to images of 1d and 3d
* fixed bug where :Depth wasnt being depth-component when compiled
* Added ways of checking pixel-format without giving errors
* Fixed bug in internalformat lookup (spelling mistake byte :byte
* Each new-primitive-type getenerates its own pixel-format-of method (if it is valid to do so)
* change char-vewcs to be byte-vecs
* allowed c-arrays to store their own pixelformat
* exported more symbols
Added describe-pixel-format. This prints out the pixel format for any type or
object (if it has one) along with the gl keywords that would have to be passed
to opengl in order to transfer pixels.
Made pixel-format-of more consistant by not assuming :int or :uints are integral (un-normalised)
This can add a wee bit of confusion at first "Why can't I upload ints" but results in better
understanding and less having to remember things. Every edge case is a mental burden
* tweaked 11.lisp - now 45 lines of very acceptable lisp
* added v!short v!ushort
* added cls