Add crate_type to the crate

Can override with rustc flag
Don't hide allocation in FlagConfiguration
Derive many traits for HammerError
Don't hide allocation in FlagDecoder::new
Make a non-documentation doccomment a regular comment
Do less allocation in canonical_field_name
Do no allocation in field_pos
Don't borrow self unnecessarily
Implement the rest of the read_* for primitives
Implement read_{f32,f64}
Implement read_char
Shuffle around remaining unimplemented methods
Fix tests
deduplicate read_uint and read_str
remove outdated TODO