Use the record for implementing Pair type and add two primitives

The previous definition of Pair constructor is

    Pair of lisp_object * lisp_object

So the instance of this type is immutable. I can not implement the two
primitive procedures, `set-car!' and `set-cdr!' based on this type. I
change the definition to

    Pair of mutable_pair

And the type `mutable_pair' is a record type contains two mutable
fields named `car' and `cdr'. Therefore, the implementation of
`set-car!' and `set-cdr!' is straightforward. But I need to modify a
lot of code in the place of pattern matching.