Full-featured JSON type with mutation tracking for SQLAlchemy