Seperate internal and externally available API

Much of the application is centered around adding new File resources
to a site. This commit seperates those functions that are meant to be used
by the user from localhost from those that are meant to only be accessed by
other clients.

The application basically has a FileHostResource that is accesible to the rest
of the network. The FileServerResource is only to be used in the internal API.
In order to make it so other users on the network cannot arbitrarily add
files from your system, the functions that enable adding files will not be
exposed to the network.