VOL-724 VOL-2106 Return of MIB external storage

- New lazy writer in-memory storage class.  Lazy writes mib_db_dict to etcd if dirty. No need to write for every set()
  This is the preferred storage class and enables adapter restart/reconciliation

- New Twisted etcd storage class.  defers to threads given etcd3 blocks.  should improve performance.

- Totally refactored mib_ext_db and mib_alarm_ext_db.
  Before they were totally unusable, but now _ext_db can be used if chosen.  Warning, they do not use the Twisted etcd storage given
  the ripple effect change through most of openomci needed.  So they use the blocking etcd3.  With 100s of onu this
  will cause timeouts.
  Given every set() is a write to etcd use of these classes should be discouraged for performance.

- Modifed mib template task to used async twisted etcd class.  Also update db interface api to include new template functions

- No longer de-jsonify certain complex attributes in in-memory dict_db.
  they must be escaped json string in the field in order for mib storage/recovery to work

Change-Id: I1b77e48ca4185542fa19016200a6cdd5daca0764
12 files changed