add initial web service support

Create basic Mojolicious application with routes and stub controllers.
Adds basic endpoints for Organism search and fetch as an example
implementation as a guide for stub end points.

* Add startup script for Mojolicious application
* Add stub controllers in CoGe::Services::Data
* Add basic routes in Routes.pm

	modified:   modules/MANIFEST
	modified:   modules/Services/MANIFEST
	new file:   modules/Services/lib/CoGe/Services/Data/Experiment.pm
	new file:   modules/Services/lib/CoGe/Services/Data/Genome2.pm
	new file:   modules/Services/lib/CoGe/Services/Data/Group.pm
	new file:   modules/Services/lib/CoGe/Services/Data/Organism.pm
	new file:   modules/Services/lib/CoGe/Services/Data/User.pm
	new file:   modules/Services/lib/CoGe/Services/Routes.pm
	new file:   web/services/coge_mojolicious
update error message

The error message reports a generic not found message rather than
a request specific message.

	modified:   lib/CoGe/Services/Data/Organism.pm
return generic messages rather than special cases

The fetch routine should return not found when an id is invalid rather
than the id being invalid. Change the error formatting to match the not
found error.

	modified:   lib/CoGe/Services/Data/Organism.pm
implement the search and fetch actions

Add the search and fetch actions in the Genome Controller. A user is
authenticated using the apiKey query parameter or by a cookie passed
from the browser.

	modified:   lib/CoGe/Services/Data/Genome2.pm
implement search action for Experiment

A user can search for experiments that they have access to. The user
authenticates using a cookie from a browser or providing an api key
as the query parameter apiKey.

	modified:   lib/CoGe/Services/Data/Experiment.pm
add fetch action for Experiment

The user fetches an experiment for a detailed view of the experiment.
The user must have access to the experiment or an Auth error will be
returned. A Error is returned if an experiment can't be found.

	modified:   lib/CoGe/Services/Data/Experiment.pm
add search action for User

Searches for all users that match the search term specified. Returns
the users id, username, first name, last name and description. This
subset of user information is available to all authenticated users. A
public user is denied access to user information.

	modified:   lib/CoGe/Services/Data/User.pm
add fetch action to User Controller

A valid user can only fetch details about themselves. An Auth error
is returned when a user tries to fetch another user. A public user
cannot fetch any user information.

	modified:   lib/CoGe/Services/Data/User.pm
add search action to Group Controller

A user can search for any group. If a public user searches for a group
the user will recieve an Auth error.

	modified:   lib/CoGe/Services/Data/Group.pm
add fetch action to Group Controller

A user can fetch any groups detail. If the request is performed by
a public user an Auth error is returned instead.

	modified:   lib/CoGe/Services/Data/Group.pm
add stubs for shared items in user and groups

Add stubs and routes for the items a user or group has access to.

	modified:   lib/CoGe/Services/Data/Group.pm
	modified:   lib/CoGe/Services/Data/User.pm
	modified:   lib/CoGe/Services/Routes.pm
remove fetch action from route path

Remove fetch from all route paths to make the routes more consise.

	modified:   lib/CoGe/Services/Routes.pm
add items action to Group Controller

A user can fetch all items shared with the group, if they are a member
of the group. When the user is not a member of the group an Auth error
is returned. A public user will always recieve an Auth error when
trying to access items.

	modified:   lib/CoGe/Services/Data/Group.pm
add items action to User Controller

A user can fetch all items that are shared with them. A user requesting
another users items raises an Auth error. A public user will always
recieve an Auth error when trying to access items.

	modified:   modules/Services/lib/CoGe/Services/Data/User.pm
Rename top-level script
Add authentication
Add experiment add
Add job endpoints
Handle staging when running in JEX
Merge branch 'api'