Manual merged of pull request 288

Restructure webinos folder hierarchy.

Jira issue: wp-508
Session variables are again exposed as it limit splitting functionality

- Code divided into smaller classes
- PZP websocket server requires now only 1 server
- It includes addition to run Synchronization Manager
- Separating out RPV code from the session code

Jira Issue: WP-545
Added support for displaying in UI if underscore is present in OpenId

Jira Issue: WP-512
Force set device name

Makes it possible to set the device name for a PZP with
--force-device-name=NAME upon startup. This is needed, so it's possible
to start more than one PZP on a single host as the device name will be
based on the hostname by default. The commit changes the various config
methods that are called to pass that custom device name and use it.

It became appearant that sometimes device name and friendly name are mixed
up and can mean the same. This commit changes the code for the PZP to only
use a device name, the friendly name might be only stored in the config
file, but never displayed. For the PZH friendly name is still essentially
the device name.

Also removes some no longer used arguments from the PZP start up script.

Jira-issue: WP-250
Fix configure service availability

Unregistering and registering services in the PZ from the PZH web
interface works again. Verious code refactorings were the reason for
breaking this feature.

Jira-issue: WP-448
Implementation of JSON File Synchronization

Instead of RSync code updated to Algebraic File Sync for JSON.
First message goes from PZH to PZP includes whole all JSON object hash.
Second message come from PZP to PZH with the object whose hash does not match.
PZH then detects changes using File Sync Algorithm, updates its own object and send updated object to the PZP.
Third message goes from PZH to PZP with updated object. PZP updates its Object accordingly.

Jira Issue: WP-21
Webinos logging mechanism to include only session code.

Logging is based on the webinosName and thus only work for the session code.
Added also mechanism to fetch logs in PZP client testbed page

Messaging and rpc code should have a logging object based on the sessionId.

Jira Issue: WP-526
Fix loading module loading from PZH admin webpage

Loading modules from the "service configuration" menu entry of the PZH
admin webpage now also uses the module loader from loadservice.js

Jira-issue: WP-573
Remove some leftovers.

* Remove doubled setSessionId call
* Remove unused load module function.

Jira-issue: WP-573
WP-528: Initial refactor of PZH to use express framework

This commit is not a complete working version: the PZH TLS server is
stubbed out.  Initial certificate exchange has been implemented.

Jira Issue: WP-528
WP-528: PZH Web interface now talks to the PZH, incomplete

Moved the folder the webinos/pzhweb as the pzh web interface is now
logically on a part with the pzp and pzh.

The PZHWeb interface now creates a TLS connection to the PZH

Totally insecure: the PZH isn't authenticating the PZH Web Interface

No message handling has been implemented yet
WP-528: fix for reconnection capability plus minor changes to the PZH structure

This is part of the refactoring work on the PZH.  It provides an update to the
connection between the PZH Web Interface and PZH.

JIRA Issue: WP-528
PZH - PZH connection request working

Added support for PZH list

Jira Issue: WP-528
Added missing components

Added node_modules webinos-api-test to check service on PZH.
Added config.json and package.json
Corrected overwriting of serviceCache issue.