ts_31_102: Fix several bugs in EF_ECC encoder

The encoder function apparently was never tested, it didn't match at all
the output of the decoder, not even in terms of the string keys of the
dict.

Change-Id: Id67bc39d52c4dfb39dc7756d8041cbd552ccbbc4
diff --git a/pySim/ts_31_102.py b/pySim/ts_31_102.py
index 4d1c3dc..4125f4a 100644
--- a/pySim/ts_31_102.py
+++ b/pySim/ts_31_102.py
@@ -622,9 +622,12 @@
         if in_json is None:
             return b'\xff\xff\xff\xff'
         code = EF_ECC.cc_construct.build(in_json['call_code'])
-        svc_category = EF_ECC.category_construct.build(in_json['category'])
-        alpha_id = EF_ECC.alpha_construct.build(in_json['alpha_id'])
-        # FIXME: alpha_id needs padding up to 'record_length - 4'
+        svc_category = EF_ECC.category_construct.build(in_json['service_category'])
+        if 'alpha_id' in in_json:
+            alpha_id = EF_ECC.alpha_construct.build(in_json['alpha_id'])
+            # FIXME: alpha_id needs padding up to 'record_length - 4'
+        else:
+            alpha_id = b''
         return code + alpha_id + svc_category