rewrite FaceGenManager and rename it to 'FaceParts'

FaceParts improvements relative to FaceGenManager:

  - Random face generation (part selection) is separated from display.
  - Individual parts can be set manually with the remaining components
    randomised.  Part selection should be stable for a given seed, so
    fixing one component and regenerating with the same seed should not
    change the other components.
  - Somewhat shorter, simpler code.
  - The number of parts provided for males and females no longer has
    to match.
  - Any individual part image can be tied to some arbitrary combination
    of species, races and genders (e.g., you could have some clothing
    or some accessories [eg, tattoos] that are tied to a particular gender
    or tied to a particular race/gender combination, etc, and other
    items that can be used by any race and gender)

FaceParts also gets rid of the face backgrounds, because they're not
really necessary, the only backgrounds we currently have are ugly, and
it didn't make much sense to me that backgrounds are tied to particular
species (they should be tied to ships & stations, I think)
delete all the facegen backgroun images
FaceParts: restrict species to folders starting with "species_"
FaceParts: add a single background image used for all faces

(image by @nozmajner)
Calculate the maximum depth that we should go to in the quad-tree.
Alter the spread of the detail level range from 7<>55 to 9<>129.
Record the number of patches we're drawing per-frame.
Added a simple caching mechanism for terrain index buffer detail levels.
Rewrite some of the access code and make some of GeoPatchContext private with accessors.
fix the linux compile issue I caused
This should produce the same results but I realised I'd gotten the number of patches wrong.
New common declaration shader file for attributes.
Update all of the shaders to use the new attributes (won't run in this state)
Start using the new attributes and VertexAttribArrays.
Have to disable some of the old client state dependent code for drawing lines etc.
Disable drawing some parts of the old-GUI
Merge branch 'master' of https://github.com/pioneerspacesim/pioneer into vao

Conflicts:
	src/graphics/VertexBuffer.h
	src/graphics/gl2/GL2VertexBuffer.cpp
	src/graphics/gl2/GL2VertexBuffer.h
Remove DrawLines2D, Node::DrawAxes.
Reimplement both DrawLines methods.
Add a bunch of profiling code to Drawables classes.
Fixup DrawPoints.
DrawHollowRect, DrawIndent, DrawOutdent fixed.
Update logic goes in the Update method.
Initialise a vector3 from a vector2f
Convert some of WorldView to use newer Drawables classes - fixes last rendering bug I know of.
Include vector2f class