use function overload instead of tag dispatch in BitSet
use function overload instead of tag dispatch in BitSet

Summary:
Currently there is a bug:

    set(bit, folly::detail::is_instantiation_of<std::atomic, T>{});

This code should be

    set(bit, folly::detail::is_instantiation_of<std::atomic, std::remove_reference_t<T>>{});

Since `T` can be reference. If we use function overload, we can make code more readable and avoid issue like this.

Reviewed By: yfeldblum

Differential Revision: D34037745

fbshipit-source-id: e731c7490cd288ca55355d650c8ffcd3fde53c1b

facebook/fbthrift,facebook/fbthrift,facebook/fbthrift,facebook/fbthrift,facebook/fbthrift,facebook/fbthrift,facebook/fbthrift,facebook/fbthrift,facebook/fbthrift