Refactor power management code

- Power management code was spread in utils, action_power, item_system
  and api Python modules. Merged the code in a new power_manager Python
  module; now it is easier to understand and maintain. Kept only one
  power method in remote (to provide power management in XML-RPC interface)
  and one power method in api (to provide consistency with other
  background tasks executed by remote, which executor is always
  inside api)
- Power management terminology was not consistent (eg 'state' and 'mode'
  were used to refer to a power management operation), fixed it
- Improved documentation
Add fence agent command logging to power manager

If fence agent command fails, it is useful to see which command
was run by Cobbler.
Remove system's network interface UI components from Cobbler system's fields definition

Motivation: network interface UI components (frontend) must not be
defined in system fields (backend code)
Order fields alphabetically in field_info.py
Simplify handling of empty 'name' parameter in __get_interface() in item_system.py

Cobbler should not try to guess which network interface __get_interface()
method caller wants if name parameter is not provided, it should just
raise an exception.
Modularize and remove redundancy in automatic network interface creation in __get_interface()
Reorder network interface attributes set methods in alphabetical order

This makes code easier to read.
Remove commented references to 'fields' variable in views.py

UI tabs (sections) are passed to Django templates and already contain
the list of fields. These old references to 'fields' variable are useless.
Move items fields documentation to item.py

New location makes more sense as the documentation is valid for
all item subclasses.
Remove alternate options names from CLI

All alternate options exist to support legacy options names.
Drop support to those names.
Replace 'x = x + y' with 'x += y'
Remove clobber attribute from CLI and XML-RPC interface

This attribute is not needed; a CLI/XML-RPC interface user could
simply check if file exists before trying to add it to Cobbler.
It is better to keep Cobbler API as simple as possible.
Rename some variables in CLI

k => name
elem => field
nicename => description
niceopt => nice_name
desc => description

New names make more sense in the code context.
Rename some variables in get_fields() method in views.py

elem => ui_field
fields => ui_fields
row => field
field_data => fields

This renaming makes code easier to understand.
Split system's network interface fields from system fields

A system may have only one value for each ordinary system field,
but it may have multiple values for each network interface field
(one for each network interface). Before, a * prefix was used
in the definition of all network interface fields and Cobbler code
checked this prefix to identify network interface fields and handle
them differently. Removed this hack and now network interface fields
metadata are in a separate list.
Remove unused fields from block mapping
Move web UI specific information in field_info.py to web directory
Define web UI fields order in web UI code instead of backend code

Before, order was defined according to order the fields were
defined in item_<item_type>.py. New implementation is more
flexible and easier to understand and maintain.
Order fields alphabetically in item_*.py
Make owners field editable via UI in File object

Before, it was not, probably because there is already an owner
field in File. 'owners' field is editable in all other objects,
so this was inconsistent.

Updated owner field description to reflect better
its purpose and made owners field editable.