Add etude::immutable
Use ADL guard
Add incomplete-type test for etude::immutable
Add make_immutable_from_static_object
Add type requirements to immutable
Merge branch 'add-immutable' into develop