Adding relationships between copy/move concepts.

- Approximate the refinement relationship between the various
copy and move concepts.
- Require default constructible for all constructible
concepts.
Adding missing destructible requirement.

Constructible did not required destructibility.
Adding general Assignable concept.

- Reshuffling some declarations for consistency.
Adjusting the construction hierarchy.

- Add movable and copyable concepts.
- break relationship between construction and destruction
for now.
Make sentinels copy constructible.
Adding adaptable predicates.

- Refactor the make_invokable feature into a legitimate
concept that allows user-specialization.
Testing algorithm.

- Added overload for initializer lists.