[FEATURE property-brace-expansion-improvement] Potential improvement as per #4605

I love the property brace expansion introduced in 1.4, but on several occasions I've entered properties with an incorrect syntax. So when @zzarcon mentioned expanding the functionality, I took a stab at it.

Property brace expansion will now work properly with any number of braces in any location, provided that the braces are surrounded by periods and only contain a comma separated list of valid property names (no whitespace).

You can look at the code for examples, but here's the gist:

```js
'foo.{bar,baz}.@each' => 'foo.bar.@each', 'foo.baz.@each'
'{foo,bar}.{spam,eggs}' => 'foo.spam', 'foo.eggs', 'bar.spam', 'bar.eggs'
'{foo}.bar.{baz}' => 'foo.bar.baz'
```

As far as the algorithm to do the expansion goes, I'm 100% positive that there's a more efficient way. But this way is fairly short and relatively easy to understand, which I think trumps efficiency in this case. However, I'd be glad to improve the algorithm (or anything else) if requested.