peering group management

- Show/Create/Edit/Delete of peering groups
- using a new controller
Show/Create/Update/Delete of peering servers and rules

* also the create link in datatables is now based on helper.base_uri
* also the peering controller checks exceptions on every db update
Show/Edit peer preferences under peer servers

* some code has been outsourced to NGCP::Panel::Utils
Implement Create/Show/Update/Delete of Contracts

Use sippeering contracts to update peering groups.
select only one billing_mapping per contract

select the billing_mapping which has an start_date and end_date closest
to the current time. do not select one that does not match the current time.

also prevent db error about multiple id columns by using 'me.id' in
the root controller
Correct management of billing_mappings

* When session->{create_peering_contract} is set, set the corresponding
product (sippeering).
* When changing the billing_profile create a new billing_mapping with
the start_date of now.
* Preselect the correct billing_mapping on the edit modal-dialog.
Add selenium test for peering controller
Use Custom Fields to check EmailList, IP address and Regexp

mantis: 0003081