bsc: Inspect a CC Setup message and attempt to reroute the traffic

Inspect the CC Setup messages and if the dialed number is matching
the regexp of the local MSC the connection will be rerouted. The
original MSC will get a GSM0808 CLEAR REQUEST, a new connection with
a CC Setup message will be opened.
bsc: Add VTY code for the local area prefix
bsc: Fix crash when the new route is not available

When we are asked to route calls on a local link and
the link is not available we would crash when trying
to send a packet over a deadline. When we have decided
to move a connection it is guranteed that the current
SCCP connection will vanish, we either migrate to another
MSC or the RSL/subscriber connection will be closed.
bsc: Blind fix to deal with phones sending a dialplan of 0
audio: Make the BSC handle the new mr_config request of the BSC API

Handle the mr_config request and set the AMR multirate config for
the given MSC. Initialize the mr_config with the AMR5.9 default we
have been using until now.
audio: Make AMR multirate configurable for the osmo-bsc

Provide VTY options to allow/forbid the usage of a
specific multirate option.
abis: Fix the verification of BCCH/SDCCH8 on TRX != 0 for the BS11

The SDCCH8 is only allowed on trx 0 if there is no BCCH/SDCCH4 on it.
si: Do not schedule SI1 to SI4 on the second TRX
ctrl: Fix the signature of the string control commands

Like with all type unsafe callbacks we will need to cast from
void to the dtype. This addresses some compiler warnings.

Make it possible to only include the control_cmd.h to use the
macros defined in this file.
ctrl: Work on the cmd->node instead of the data pointer passed

Make the macros use the cmd->node instead of the data pointer. The
naming of the variable inside the macro already indicates that it
should use the nodes data structure.
debug: Fix typo in the debug category
sms: Avoid infinite CP-ERROR/CP-ACK loop with sms.

The issue can be reproduced by typing the following 9 or more times.
 OpenBSC> subscriber id 2 sms sender id 2 send bla

For some unknown reason the phone sends us a CP-ERROR for a transaction
identifier we have allocated and used but don't remember. Due the way
we use the SMC/SMR we 'establish' the machine and this results in a CP-ACK
being sent out. But the CP-ERROR is not having the content we want for
an establish so we send out a RP-ERROR. This will result in a CP-ERROR
because the phone does not know the transaction...

Avoid the issue by checking the direction of the transaction. If we do
not know the transaction and it is supposed to be allocated by us then
just ignore it and do not create a new transaction.
bsc: Introduce an authenticated signal for the MSC connection

Send the signal whenever a MSC appears to be authenticated.
bsc: Do not re-start the grace timer when we are in the grace period
bsc: Use the BSC RF CTRL to change the RF state of the TRXs

Use the delayed scheduling feature of the osmo_bsc_rf class to
avoid crashing the site controller of the nanoBTS.
bsc: Send a TRAP with the locations on a MSC connection

Send the current position when the MSC connection is established.
bsc: Simplify the trap sending by using the location state method
bsc: Create a better error message for when RF commands are rejected

Provide an error message that makes it more clear that the command
is rejected because RF handling is not enabled in the BSC.
nat: Fail if the control interface can not be initialized
bsc: Auto RF Off in case of missing MSC connection

For short IP failures we want the RF to stay up and wait for
the re-connect but in case the A-link is gone too long it is
good to switch off the RF and wait for commands to enable it
again.