Feature/copy constructors

fix copy constructors, now the following works:
- `copy.copy`
- `copy.deepcopy`
- `Object(Object)`
to make copies of objects