Support variable assignment in local blocks.

This should fix #347.

Notes:
* For tests, see https://github.com/openscad/openscad/blob/issue347/testdata/scad/misc/scope-assignment-tests.scad
* anonymous scopes are ignored (they behave as if belonging to the parent scope)
* Function and module definitions in local blocks are not (yet) allowed

TODO:
- [x] Documentation
- [x] Deprecate assign() (Q: Are there any good reasons _not_ to deprecate assign()?)