Handle assigning empty scope to non-empty scope
When constructing scope, split string on space instead of parsing
Remove unused scope parsing API
Remove scope::types::atom_t

This is first step toward decreasing memory usage by scope_t.
Use name convention to identify non-content scopes
Update scope selector matching code

This is in anticipation of changing scope_t data layout.
Add more scope selector tests
Use linked list for scope_t data
Improve encapsulation
Remove unused comparison operators
Remove unused to_s functions
Introduce C string API

This may seem like a step back, but is the easiest way to deal with “static strings” (that should not be copied).
Convert scope match API to accept C strings
Remove custom debug/trace log system
Remove redundant assert
More encapsulation