Fix crash when looking at Skill Legend panel immediately on startup

It is possible for m_proxy to be unallocated immediately after startup.
This patch guards against this by checking m_proxy before use.
update role calc, role prefs, custom role bug

- re-wrote role calculations to use new checks and transformations based
on thistleknot's latest role work
- added highlighting of which preferences are matched in roles, and
additionally listed the exact matches
- updated role preference names, and added a check to update general
material names on load
- updated roles to have proper member variables
- split the crop role preference category into crops (gather/grow) and
crops (grow)
- removed the 'wagon' creature from roles
- fixed a bug with role attributes rounding due to passing int instead
of double
- fixed a bug with roles where having invalid/bad weights resulted in
invalid ratings which caused drawing anomalies
update role weight struct, negative role weights

- highlight negative role weights in red
- minor update to the role's weight struct to make it more generic
Merge remote-tracking branch 'Hello71/DF2014' into DF2014
Merge remote-tracking branch 'stoutheart/DF2014' into DF2014
fix leaks

- fix caste body part leak
- fix 'leak' on exit from health categories (fixes #203)
fix minor stuff from last commit
fix minor coverity issues
Miscellaneous minor changes.

- Inline or remove various unnecessary wrapper functions for "new".

- DFInstanceNix::read_string can now read strings longer than 256 bytes

- Fix various invalid memory use issues