tomllib 0.1.2

A format-preserving TOML file parser and manipulator
Documentation
* Everywhere
	- [x] Switch back to using nom now that the new version has been released
  - [x] Logging
  - [x] Add line numbers to errors
  - [ ] **Add documentation to public enums, structs, functions, methods and macros** - *In progress*
  - [x] Switch names of TOMLValue and Value
  - [x] Rename Parser to TOMLParser

* primitives.rs
	- [x] Implement get_keychain_key
	- [x] Implement get_full_key
	- [x] Implement get_key_parent
	- [x] Change Key::Str to just hold an &'a str again
	- [x] Fix DateTime to allow only Date, only DateTime (no fractional seconds), only DateTime (with fractional seconds), Full DateTime with offset
	- [x] Change TimeOffset::Z to TimeOffset::Zulu?
	- [x] Change '+'/'-' to enum
	- [x] Inserting a value insert's its key in it's parent's children 
	- [x] Re-implement get_array_table_key to take into account implicit tables are always standard tables
  - [x] DateTime validation

* ast/structs.rs
	- [x] Re-implement HashValue to have a list of children or max index of children
	- [x] Fix DateTime to allow only Date, only DateTime (no fractional seconds), only DateTime (with fractional seconds), Full DateTime with offset
	- [x] Change TimeOffset::Z to TimeOffset::Zulu?
	- [x] Change '+'/'-' to enum

* objects.rs
	- [x] In array_table when adding to existing table get_key_parent and add the new index as a child in the map, then add full_key to the map with None value
	- [x] Fix add_implicit_tables
	- [x] In array_table if table keys imply subtables that don't exist, add the implied tables as std_tables to the map with None value and add add their subkeys as children (partially done)
	- [x] In std_table if table keys imply subtables that don't exist, add the implied tables as std_tables to the map with None value and add add their subkeys as children
	- [x] In array_table if get_key_parent exists and has no indexed children, then it is an error (see toml-test/invalid/table_array_implicit)
	- [x] In array_table when encountering a new table that isn't a subtable of the last table, rebuild last_array_tables and last_array_tables_index by starting at the first subkey, looking up it's children and so-on, if the array_table already exists
	- [x] In array_table always add new table to map with None value
	- [x] In std_table always add new table to map with None value
	- [x] In array_value insert_key_val_into_map

* parser.rs
	- [x] Change Key::Str to just hold a Str
	- [x] Implement reconstructing InlineTables and Arrays with different structures than previous values
    - [x] Implement wiping out all keys and values of InlineTables and Arrays with changed structure
    - [x] Implement converting Value Arrays and InlineTables to TOMLValue Arrays and Tables
    - [x] Implement inserting new keys and values into map
    - [x] Implement inserting new Array or InlineTable value into AST
	- [x] Implement ~~get_errors~~ Errors are returned as part of pars result if there are any
  - [x] TOMLValue parsing on set_value (currently set_value accepts whatever you give it). *In progress, almost finished*
	- [x] Implement get_children
  - [x] Convenience functions
    - [x] For creating Values, especially DateTime
    - [x] Combining a key and a subkey or index to a new key
	- [x] Add unit tests for getting values
    - [x] Add unit tests for getting sub-keys
	- [x] Add unit tests for setting values
	- [x] Add unit tests to check the map to make sure removed keys are gone
  - [x] Have parse return a tuple with the parser and the result
  
* tests/assets.rs
	- [x] Add failure/error tests for invalid toml-test's
	- [x] Add toml/examples/example-v0.4.0.toml to success tests

* tests/parser_tests.rs
	- [x] Add integration tests for parser: 
    - [x] load a larger document -> validate
    - [x] do a bunch of gets -> validate
    - [x] do a bunch of get_children -> validate
    - [x] do a bunch of sets, then do a bunch of gets -> validate
    - [x] Add failure tests for the other 3 types of error

* types.rs
  - [x] Log an error on a return result of Result::Err
  - [x] Add unit tests to convenience functions
  - [x] Add future error types to ParseError
  - [x] Add column number to all error types
  - [x] Add the invalid datetime string to the InvalidDateTime error