True support for room versions 1-5

Currently it is not possible for Conduit to support room versions 1-5 due to ruma not supporting non-canonical json for ruma-signatures, which seems to indicate that they would be open to a contribution to adding support in the future.

Many rooms are on these old room versions, so adding support for them, despite them having major issues, is desirable.

Note: according to tulir, for these old room versions, Synapse canonicalizes everything except for floats, so for ruma-signatures we need to be able to canonicalize everything while leaving floats untouched. We should also not enforce the maximum integer limit, as per the spec.

Edited by Matthias Ahouansou