Slice the map from [start, end)

def slice(self, start=0, end=0):
        """Slice the map from [start, end)"""
        tmp = Gauged.map_new()
        if tmp is None:
            raise MemoryError
        if not Gauged.map_concat(tmp, self.ptr, start, end, 0):
            Gauged.map_free(tmp)  # pragma: no cover
            raise MemoryError
        return SparseMap(tmp)