Cast PhoneNumber field to unicode before storing in session

JSON serializers cannot handle arbitrary python data types (of which the
PhoneNumber is one).  To work around this, we cast the phone number to
unicode before storing it in the session.  This works ok as the
PhoneNumber field is reconstituted correctly when the string is
deserialized.

Fixes #1067
Fixes #1069