Variant: unpack properly for filters() api

Updated the tests to have individualized test so we can catch unpacked
states in the future

fixes #154
Where are the better tests for unpacking-related issues? I see only a trivial refactor of generic_variant_reader_test to take a std::function argument...