restructuring DB access

using prefetch to improve performance
the whole preferences page now only needs 4 sql queries
dynamic page title
add some source documentation

to domain controller and preferences form
add some selenium tests

for the controllers: domain and reseller
more selenium tests

for controllers: reseller, domain
improve selenium tests

- fix workaround to make buttons visible
- let all tests work with selenium-webdriver and phantomjs
make all selenium tests work with chromium and htmlunit

selenium tests are now working with: firefox, chrome, htmlunit, phantomjs
Create new controller for Billing
create "Edit Billing" modal, make validator happy

plus add a topmenu entry for Billing
plus better align actions column
billing: fix links, create forms (billing_fees, billing_profiles)

- another datatables structure is there for billing_fees
- forms are now performing the desired actions (in ngcp-schema)
make billing_fees editable, add billing_zone as datatables form

the use of get_columns in lib/NGCP/Panel/Controller/Billing.pm
line 141 could cause problems according to #dbix-class
fix editing of billing_fees

- the foreign key billing_zone_id was not treated correctly
- also added a link to billing in the dashboard widget
- update some documentation
fix tests

the new billing controller is a redirect if one is not logged in
new modal to create billing zones
remove commented code

and one small code simplification