More json consitency checks

- Check profession items & starting skills & starting bionics.
- Check book for recipes for existence and correct (it_book) type.
- Allow re-definition of vehicle parts without memory leaks or dangling loadids.
- Check for unknown vehicle parts in vehicle prototypes.
- Check item spawns in vehicle prototypes (removed the GUITAR as it does not exist, waiting for #1890)
- Add a check in `map::spawn_item` for unknown items and ignore those. This should removes a source of null items.