[MAINT] Divide 'Multiarray.hpp' into several headers.

As the title says, we divide the header 'MultiArray.hpp' into several header files:
- 'ElementTraits.hpp'
- 'MultiArray.hpp'

In the wake of this PR, we also did the following:
- Raise a runtime exception when using the assignment operator to wrapped data instead of exiting the program.
- Add unit test for that.
- Add missing copyright notices to some recently added files.