#493 - Create `removeContentFromLibrary` method in ContentAPI

Content can now be removed from a principal's library via the:
  /api/content/library/:principalId/:contentId
endpoint.

The discussion module has been slightly refactored. Some of the methods
have been moved over to the authz and library modulse and 
have been generalized.

`removeContentFromLibrary` relies on the same APIs as the 
`removeDiscussionFromLibrary` API.
Issue #484 - Added a testcase for actor->object and actor->target tenant boundaries

* Checking the visibility of target users that we're sharing with.
* Splitted out the tenant sharing tests into a separate file.
* Moved the createMultiTenantPrivacyEntities to the tests utility.
Merged master in issue-493-removeContentFromLibrary
Exposing discussion removal from library as a DELETE rather than a POST.
(Issue 478) Remove deliveryInfo from log entries as it dumps buffers into the JSON
Fix issue with exceeding EMFILE limitations during dox generation
Expose UI directory in UIAPI method
Fix check-style issue in oae-ui/lib/api.js
return the user's profile on update
return full user profile on update
Merge branch 'master' into issue-493-removeContentFromLibrary

* master: (57 commits)
  Update README.md to reflect nodejs version info
  Switch object and target in add-group-member activity to conform to activitystrea.ms
  Fix minor formatting issue in functions
  Removed extraneous search query from cropping test.
  #518 - Validating the role changes for content.
  Less 1.4.0 requires you to pass in an option configuration.
  Read a widget manifest rather than requiring it as require will cache the manifest indefinitely.
  Running check style script with travis ci
  Removed grunt-jslint as it is not longer being used.
  Added JSDoc to an inner function.
  fix custom checks
  jshint cleanup
  fix line endings and trailing whitespace
  Use jshint not jslint for style checking
  last manager can't leave a group
  simplify validator logic
  #338 - PR review - cleaned up code.
  Stopping memcached, mysql and postgresql on travis.
  code review issues
  Replacing defaultPadText after the settings.json files has been created.
  ...
Re-factored tenant boundary checks into tenantsutil.

Refactored the _resolveTenantBoundaryViolations method from oae-discussions
and oae-content into a single utility method in oae-tenants.
Refactored `_resolveImplicitRole` into the Authz API
When restoring a revision as a non-manager, aborting early.

Also cleaned up unit test for restoring revision
Merge master.
Fix for performing a membership change userA: false where userA doesn't have a role on the resource.
Merge branch 'master' into issue-478
Logging deliveryInfo again
Moved TenantsUtil.resolveTenantBoundaryViolations to AuthzApi.canInteract
Expanded unit test to cover sharing to a public user from a private tenant. Also added some documentation in the authz API.