Add identifiers

Allow identifiers as a special low-effort string. Kinda like barewords. 

i.e 
```[foo]
key = bar
```
and 

```["foo"]
"key" = "bar"
```
Are the same thing. 

Rationale:

Simplifies stuff. Idenfiers cannot have dots, square brackets or spaces in. It's easier to parse the format by tokenizing it first. 

You can have keys with weird names still, and now keygroups can have dots in them, but they get punished for it by making them quote it. i.e. ["foo.bar"] isn't [foo.bar]