vty: Use generic 'end' and 'exit' commands

Add bsc_install_default() and replace all install_default()

This patch adds bsc_install_default() which calls install_default()
and add 'exit' and 'end'. All other calls to install_default() are
replaced by calls to bsc_install_default().

Since 'exit' and 'end' are now added automatically to each node, the
explicit registrations of these commands are removed by this patch,
too.

The related tests succeed now without work-arounds (except for the
'config' node itself which is part of libosmocore).
diff --git a/openbsc/src/libbsc/abis_nm_vty.c b/openbsc/src/libbsc/abis_nm_vty.c
index fd60210..5db667d 100644
--- a/openbsc/src/libbsc/abis_nm_vty.c
+++ b/openbsc/src/libbsc/abis_nm_vty.c
@@ -183,8 +183,7 @@
 	install_element(ENABLE_NODE, &oml_classnum_inst_cmd);
 	install_node(&oml_node, dummy_config_write);
 
-	install_default(OML_NODE);
-	install_element(OML_NODE, &ournode_exit_cmd);
+	bsc_install_default(OML_NODE);
 	install_element(OML_NODE, &oml_chg_adm_state_cmd);
 	install_element(OML_NODE, &oml_opstart_cmd);
 
diff --git a/openbsc/src/libbsc/abis_om2000_vty.c b/openbsc/src/libbsc/abis_om2000_vty.c
index 3df005b..eb8f4d5 100644
--- a/openbsc/src/libbsc/abis_om2000_vty.c
+++ b/openbsc/src/libbsc/abis_om2000_vty.c
@@ -445,8 +445,7 @@
 	install_element(ENABLE_NODE, &om2k_classnum_inst_cmd);
 	install_node(&om2k_node, dummy_config_write);
 
-	install_default(OM2K_NODE);
-	install_element(OM2K_NODE, &ournode_exit_cmd);
+	bsc_install_default(OM2K_NODE);
 	install_element(OM2K_NODE, &om2k_reset_cmd);
 	install_element(OM2K_NODE, &om2k_start_cmd);
 	install_element(OM2K_NODE, &om2k_status_cmd);
diff --git a/openbsc/src/libbsc/bsc_vty.c b/openbsc/src/libbsc/bsc_vty.c
index 45df90f..5748945 100644
--- a/openbsc/src/libbsc/bsc_vty.c
+++ b/openbsc/src/libbsc/bsc_vty.c
@@ -3002,9 +3002,7 @@
 
 	install_element(CONFIG_NODE, &cfg_net_cmd);
 	install_node(&net_node, config_write_net);
-	install_default(GSMNET_NODE);
-	install_element(GSMNET_NODE, &ournode_exit_cmd);
-	install_element(GSMNET_NODE, &ournode_end_cmd);
+	bsc_install_default(GSMNET_NODE);
 	install_element(GSMNET_NODE, &cfg_net_ncc_cmd);
 	install_element(GSMNET_NODE, &cfg_net_mnc_cmd);
 	install_element(GSMNET_NODE, &cfg_net_name_short_cmd);
@@ -3040,9 +3038,7 @@
 
 	install_element(GSMNET_NODE, &cfg_bts_cmd);
 	install_node(&bts_node, config_write_bts);
-	install_default(BTS_NODE);
-	install_element(BTS_NODE, &ournode_exit_cmd);
-	install_element(BTS_NODE, &ournode_end_cmd);
+	bsc_install_default(BTS_NODE);
 	install_element(BTS_NODE, &cfg_bts_type_cmd);
 	install_element(BTS_NODE, &cfg_description_cmd);
 	install_element(BTS_NODE, &cfg_no_description_cmd);
@@ -3102,9 +3098,7 @@
 
 	install_element(BTS_NODE, &cfg_trx_cmd);
 	install_node(&trx_node, dummy_config_write);
-	install_default(TRX_NODE);
-	install_element(TRX_NODE, &ournode_exit_cmd);
-	install_element(TRX_NODE, &ournode_end_cmd);
+	bsc_install_default(TRX_NODE);
 	install_element(TRX_NODE, &cfg_trx_arfcn_cmd);
 	install_element(TRX_NODE, &cfg_description_cmd);
 	install_element(TRX_NODE, &cfg_no_description_cmd);
@@ -3116,9 +3110,7 @@
 
 	install_element(TRX_NODE, &cfg_ts_cmd);
 	install_node(&ts_node, dummy_config_write);
-	install_default(TS_NODE);
-	install_element(TS_NODE, &ournode_exit_cmd);
-	install_element(TS_NODE, &ournode_end_cmd);
+	bsc_install_default(TS_NODE);
 	install_element(TS_NODE, &cfg_ts_pchan_cmd);
 	install_element(TS_NODE, &cfg_ts_pchan_compat_cmd);
 	install_element(TS_NODE, &cfg_ts_tsc_cmd);