Add make_array and to_array functions (N4315) (closes #35)

Add is_reference_wrapper trait to functional component
Fix typo in bit_not
Fix meta::index to return numeric_limits<size_t>::max() instead of 0, if
  T is not in the given pack<Ts...>
Fix a type issue with core::exchange for the noexcept statement.
Fix core::variant to *truly* use void* internally for casting.
Update core::variant to use the new meta component.
Add test for array component