add str_xcat()

* hopefuly more efficient string concatenator
* avoids recursion in str_cat()
add atom_xstr()
scopes don't necessaily have macro values
support [^...] in globs
doc
doc
scope_get() is const
add str_xcatr()