[BACKLOG-1562] - Add support for shadow nodes on the RepositoryFile and jcr nodes. Updated unit tests.

@pentaho-nbaker please review
Some more information would be good here. 

The purpose of a shadow node is to be a placeholder for ACLs on another node which cannot have such ACLs on it's own. An example of such a scenario is one where the node being shadowed is in an area of the repository which prevents any access (/etc/*). Subsystems can create a shadow node in this case to store and check access rules (ACLs), while still preserving the original shadowed node in the restricted area.