LICENSE: convert to AGPLv3

added LICENSE.txt file. All file headers are ok anyway
Package dependancy fixes

cleaned up requirements.txt and arranged dependnacy vs top level pkgs
removed deps from setup.py apart from most important - was causing
duplicate attempts to installpkgs and was unnecessary
Docs: Add extra documentation
Docs: More doc changes, comments and logging.

This contains comments, logging fixes and PEP8 fixes sprinkled thoroughout
Save and Delete: make calls on object

this brings the save / delete calls onto the CNXBase objects.  Previously we
used the recommended SQLAlchemy way of magically having dbsession in module
namespaces.  I have explicitly passed the dbsession now into save call, so
avoids a little bit of magic.  (We still deal with the magic of SQLA)
Add in own HTTPException handling

rather than rely on flask.abort, we raise an Exception class.  THis both
decouples us from Flask, and means we can raise an error in security,
and then let it bubble up, or catch and handle as needed.  For exmaple it
is valid for a folder you own to hold modules you dont, so an attempt to
read folder contents will result in a exception, but is not a 400 error.
Standalone: allow URLMap to act as proxy

for dev only, URLMap can be used to serve static files as if it was a front end load balancer
Dbase field changes

roletype security has no need of last modified - converted to start end dates
user and identity changes, ensuring consistent approach

Create a consistent approach to naming of user, user_uri etc.
Remove routing for static work from views

The routing for static fviews should be in URLMap or nginx not in the app itself
put restrest in initially
Fix /js/ routing for dev server

now all the JS is behind /js/ as SCRIPT_PATH.  THen the api stuff is
at /wrokspace etc again.  This is more satisfactory than the other way round.
Thanks to @phil for the brainwave.  nginx routing should not carry the /js/
adjust views to correctly append charset to response
integrate restrest
Fix license header

the merging ended up with two license headers
fixing merge issue with cherry-pick

of a6959277dd8f7078a25ad8c2d38429b8fdd75453 alter run.py
to work with waitress and URLMap
fix license header file
kill off commented lines

zombie lines that seem to be in some branches not others
fix incorrect return of id only in folders.

Also remove conversation capture routine till solutin foiund
If user has no permissions, return nothing

if user has not got permission to see a folder sub item, do not break
the whole request, but also do not show them the item.