Creates sdo-tree directive for tree navigation

The sdo-tree directive wraps the abn-tree directive
Turns tree-navigation into a plugin

- By separating tree-navigation into its own module, its easier to
configure and maintain
Makes tree-navigation configurable from its descriptor file
Lets user set per-service url settings when instatiating services
Sets default value for custom config
Renames service constructors
Lets user specify additional service providers via configuration

The app stores a list of service providers. The service provider used
to bootstrap the app is stored within this list and becomes the
default service provider.

Using the module-specific configuration, module authors are able to
choose the service provider that they wish to use.
Makes tree sections & sub-folders load data per config service details

The tree sections make use of their corresponding serviceProvider
and service properties to load content into them. This information
(i.e. serviceProvider & service properties) is passed on to the
sub-folders so they can also make use of them to load content.
Mocks/observes asset ID in tree navigation
Updates mocks for descriptors and templates
Broadcasts events on file and folder select from tree navigation

$sdoTreeNavFileSelected, fired when a file (i.e. leaf) is selected
$sdoTreeNavFolderSelected, fired when a folder is selected
Adds event listener to editor for tree navigation event

Changes type values in mocks
Expose tree control from sdoTreeDirective to parent scope
Reduce number of buttons in test service UI

- Remove type buttons
- Move action buttons over editor
Fixes insertCode function
Adds update functionality for uploaded files and inline content
Hides action buttons for assets
Reads asset contents
Provides user with feedback after creating/updating assets
Provides user with feedback after uploading new templates & descriptors