Added support for complex properties:

- Introduced CompositePattern for property mappings: ComplexPropertyMap and IPropertyMapElement
- made the types ComplexPropertyMap and PropertyMap immutable
- patched SqlServerBatchRunner to support complex properties