GridFS relies on being able to compute an MD5 hash incrementally as the GridFS chunks are being uploaded or downloaded.
Since the .NET Core implementation of MD5 only works with entire buffers at a time, we have to write our own implementation of MD5 (at least for the .NET Core version of the driver).