[BSC] Allow manual override of neighbor cell list

So far, OpenBSC simply assumed that all BTS's configured in openbsc.cfg are
neighbors of each other.  While this is true for small site installations,
it is definitely not true in most real world cases.  We now have the
following new commands at the 'configure bts' level:

'neighbor-list mode (auto|manual)' for selecting the mode

'neighbor-list (add|del) arfcn <0-1024>'
	for adding/deleting ARFCN in manual mode
diff --git a/openbsc/src/system_information.c b/openbsc/src/system_information.c
index 4f31c6b..5079d81 100644
--- a/openbsc/src/system_information.c
+++ b/openbsc/src/system_information.c
@@ -207,11 +207,14 @@
 	/* Zero-initialize the bit-vector */
 	memset(bv->data, 0, bv->data_len);
 
-	/* first we generate a bitvec of the BCCH ARFCN's in our BSC */
-	llist_for_each_entry(cur_bts, &bts->network->bts_list, list) {
-		if (cur_bts == bts)
-			continue;
-		bitvec_set_bit_pos(bv, cur_bts->c0->arfcn, 1);
+	/* Generate list of neighbor cells if we are in automatic mode */
+	if (bts->neigh_list_manual_mode == 0) {
+		/* first we generate a bitvec of the BCCH ARFCN's in our BSC */
+		llist_for_each_entry(cur_bts, &bts->network->bts_list, list) {
+			if (cur_bts == bts)
+				continue;
+			bitvec_set_bit_pos(bv, cur_bts->c0->arfcn, 1);
+		}
 	}
 
 	/* then we generate a GSM 04.08 frequency list from the bitvec */