Clean up old JSF left overs

Issue: #74
Add REST Get Sessions for Conference
Add UI JavaSCript Test cases using Arquillian QUnit

Qunit combined with AngularJS and mocked httpbackend to
unit test graph.js, the GeekSeek Graph UI REST service.
Issue: #30
Add support for deep linking in LinkProvider

LinkInterceptor will now also discover Collections within
the Response and attempt to link all children in the list.
Add SearchableRepository interface

Provide a common interface for searching for entities based on a
criteria.

* Currently only implemented for Conference
* 'hardcoded' in ConferenceResource
Remove serialization of null values in JSON
Add auto clean up of Relations with missing Targets

Since the Relations Repository is not synced with deletes
from the Target Repositories we do some clean up during find.

If a Source has a relation to a missing Target, we remove the
Target and it's relations from the Relation store.
Remove option to self linking relations.

A user has outgoing presented_by relation as well as a
incoming relation presented_by for other resources to
allow to link back on the same relation. But a User
can not be presented_by itself or another User.

* Fix relation serivce URL to ID lookup
Allow AppFilter to return 404 to avoid recursive index lookup

On missing resource we should only return 404 if it's Allow header
is the geekseek MediaType. Else we return the index page to allow
Angular HTML5 based path lookup to work it's magic.
Add incoming relation presented_by to Session

Allows not only Sessions to be Presented by someone, but
also Someone to be presenters of a Session.

* Add outgoing relation presented_by to User
Add self links to all Resources
Fix diff UI issues

* Add subresource support mapped to a link in a parent resource
* Fix resolving of parent Node breadcrums
* Add Link filtering
* Add User view

* Split action links in action and useraction
* Add simple handling of useraction of type; add me to this

Issue: #30
Add Graph Node cache

With the Node cache, which uses URL as key, we can reuse the same
Node instance between Main Resource, Link Resource and List Resource.

This allow us to minimize the number of OPTIONS call we do, and
since all Nodes refer to the same data set that belongs to the
Resource, a simple 'refresh' on any level will refresh all users
of the said data.

e.g.
* Session contain a List of User
* Add User to List

A refresh call on the User List, will refresh the List in Session as
well without a need to refresh the whole session since they refer to
the same Node.

Issue: #30
Minor UI fixes to avoid flickering
Link logged in user to User view
@maniksurtani suggested edits to NoSQL Chapter