Allow alphabetical sorting and generate closures resilient to special ...

... chars in property names. Alphabetical sorting was provided by special sort type "2", but that's not compatible with mongoDb and less powerful as it doesn't allow sorting in both directions. Special sort type "2" could be removed now, but I left it for backward compatibility.

If you have a property name obj["prop@strange"], then sculejs will throw exception because when constructing closure it uses obj.prop@strange instead of more safe obj["prop@strange"]