Fake FakeFS::File#is_a? properly.

Since FakeFS::File actually is a StringIO we need to jump through some hoops to make it report otherwise. Unfortunately other type checking mechanisms are not fooled by this, such as case-when/===.

Fixes #192.