Deprecate the old config system and make a refined version of the internal config system public. Doing allows the Serializer/Deserializer to be exposed since all of its generic type parameters are now public.
* add option and config traits
* thread options everywhere
* add WithOtherLimit, WithOtherEndian, and update internal to take advantage of it
* wip
* add rest of the public API and fix tests
* dtolnay feedback
* remove serialized_size_bounded and replace it with a use of config
* remove inline from trait method
* finish documentation and add custom reader support
* minor config_map refactor
* doc changes
* add with_(de)serializer functions and their associated modules
... by utilizing that bincode is not human readable.
Uses the changes in https://github.com/serde-rs/serde/pull/1044 which
allows data formats to report that they are not human readable. This
lets certain types serialize themselves into a more compact form as they
know that the serialized form does not need to be readable.
Closes#215
BREAKING CHANGE
This changes how types serialize themselves if they detect the
`is_human_readable` state.