Add professions to character creation, affecting starter gear

Profession code based in part on skill code. Breaks save files and templates, but as currently written, adding new professions does not break compatibility.

Also add 4 sample professions: Unemployed (unchanged from current), Lab Technician (starts with labwear), Nudist (starts with nothing, -1 point cost), Wannabe Mechanic (starts with toolbelt, wrench, some books).
Actually give mechanic profession books. Also, bump it to 2 points.
Make removing professions emit a warning, not crash
Give the player an ordered profession list during chargen
Actually check that we've got the points for our profession
Make new files conform to indentation standard
Make the large new function conform to indent style
Fix indent/missing brace issue.
Re-add pocket knife and matches as all-profession starter gear
Add Chain Smoker profession, and let professions give addictions
Remove nudist profession - was mostly an example of negative point value
Merge commit 'e4385d9c86e48826c964d7827b39741c008d65d2'; commit '61c5b3fe66be8aeaa0c21e111f8674f81e28115c'; commit '350db295f3a5e4f20951fd244dadfcfbeea9587a'; commit '64e0329b903ac11c4e07d6133c593d266aa6ea73'; commit 'b3d24ed8eb084b490137d5fcebae77a156cbd336'; commit '04c03d91170bb9e340b76db7f0e6d7d651a1983a'; commit '599be6f069b3ac8da059409a3ca47d8e78f53de2'; commit 'efd157e06b4e69bd90eae471e0d0e4ee5f0697c1'; commit 'c71454f9b8360d85c399c1ccf1f426e122e6137d'; commit 'f1fd982694fb10f313400a7de0475f9cc4d169d6'; commit '9688ce66eb6ae98da61292f950017493fc854610'; commit 'e1990077a1df70d971d2663009d37aeac00081c9'; commit 'e20b14cea10952bcc5cef75cd6767772ffe4fea9'; commit '41f8d25a68d4868cfb6da13e086811dae363cd64'; commit 'c20cd4cead91137d92f2879dc7647387bd0522bc'; commit '4b1a2b962d187f398f124bfe58308e8f5200b6c0'; commit '8c2807465b5c68d7b1b9f004614e3f0b502c7559'; commit '536b5bc5cd81bf6acf976b3268576a5d9c03e13e' into fix-history