Added possibility of explicit list type declaration
* while the `CAR` types of any single `Cons` structure was enforced to be equal through static asserts there was no straight forward way of declaring this type
** safe for casting the first argument passed to `make` to force correct deduction
** this is now possible by explicitly defining the first template parameter of `make`
*** convertability is checked and enforced accordingly
* moved `sfinae.h` into `detail/type` where the new `transformation.h` is located