Add string chooser macro for character array references
Add string chooser macro for character array references

Adds FLY_ARR, analogous to FLY_STR, for obtaining references to string
literals rather than pointers.

Consider the following method:

    template <typename CharType, std::size_t N>
    void my_func(const CharType (&str)[N])
    {
    }

This cannot be invoked with FLY_STR with the following call:

    template <typename CharType>
    void caller()
    {
        my_func(FLY_STR(CharType, "heya"));
    }

Because "heya" will have been decayed to a pointer by FLY_STR. Now,
FLY_ARR returns a reference to the provided string literal, and the
following invocation will compile:

    template <typename CharType>
    void caller()
    {
        my_func(FLY_ARR(CharType, "heya"));
    }

trflynn89/libfly,trflynn89/libfly