Implement Ring username registration

AccountCreationWizard:
 - Users can now choose to register a username. They can also decide
   to do it later.

UsernameRegistrationBox:
 - New widget that allows to lookup usernames and see if they are
   available. It can also be used to register a username with the
   Register button.

AccountGeneralTab:
 - Display the Ring username with the UsernameRegistrationBox and allow
   registering one.

Change-Id: I0c01ee34dc3749aac8a000a0d574ea8561453cba
Tuleap: #997
[stepan.salenikovich@savoirfairelinux.com: improve lookup usernames
 code; prevent sending querries when not using blockchain]
Signed-off-by: Stepan Salenikovich <stepan.salenikovich@savoirfairelinux.com>
diff --git a/ui/accountmigrationview.ui b/ui/accountmigrationview.ui
index d185ee9..72471a7 100644
--- a/ui/accountmigrationview.ui
+++ b/ui/accountmigrationview.ui
@@ -239,6 +239,49 @@
               </object>
             </child>
             <!-- End Error view -->
+            <!-- Choose username view -->
+            <child>
+              <object class="GtkBox" id="choose_username_view">
+                <property name="visible">True</property>
+                <property name="valign">center</property>
+                <property name="halign">center</property>
+                <property name="border_width">10</property>
+                <property name="orientation">vertical</property>
+                <property name="spacing">15</property>
+                <child>
+                  <object class="GtkLabel">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="label" translatable="yes">Choose your Ring username</property>
+                    <attributes>
+                      <attribute name="weight" value="bold"/>
+                    </attributes>
+                  </object>
+                </child>
+                <child>
+                  <object class="GtkLabel">
+                    <property name="visible">True</property>
+                    <property name="label" translatable="yes">As of now Ring has a decentralized username registry. This means that you can now contact your friends using their usernames instead of their RingIDs. The username registry is distributed and all users are able to consult it.</property>
+                    <property name="halign">center</property>
+                    <property name="max-width-chars">80</property>
+                    <property name="wrap">True</property>
+                  </object>
+                </child>
+                <child>
+                  <object class="GtkBox" id="box_username_registration_box">
+                    <property name="visible">True</property>
+                    <property name="halign">center</property>
+                  </object>
+                </child>
+                <child>
+                  <object class="GtkButton" id="button_register_username_later">
+                    <property name="visible">True</property>
+                    <property name="label" translatable="yes">Register my username later</property>
+                  </object>
+                </child>
+              </object>
+            </child>
+            <!-- End Choose username view -->
           </object>
         </child>
       </object>