STEPattribute - fix copy constructor, Shallow Copy

Fixes #238

* rewrite copy constructor and ShallowCopy()
* add destructor which conditionally deletes the contents of `ptr`
* rewrite `operator==`
* move clstepcore test dir
* add tests for operators (found more bugs in the process!)

* also some cleanup
  * char* -> std::string
  * eliminate unnecessary const_casts
  * int -> bool
  * unnecessary function calls
  * etc