implemented linking in workspace and added tests

implemented linking into workspace, this allows us to open a file or a project, get children and also to get/set contents on a file. Also added tests for these functions.

@devoncarew @dinhviethoa