Merge pull request #3 from salter31/software-testing

Add New API commands, Fix other ones
Update API to fix logic holes

TrustEdge's are more fleshed out explaining what they really entail
Reworked a <User> portfolio after some input from Jason and Christina
Added idea's for Java classes
Nic Api.txt

Fixed some nit-pic issues that weren't saved
Add product-backlog and test-plan for turn in on blackboard
Updating API, fixing logic-holes.
-Added api call to expose portfolio
-Added distinction between <TrustEdge> and <SubjectiveEdge> when describing connections between peers.
-Clarified wording of viewSubjectiveNetwork
-Renamed viewPublicNetwork to viewTrustNetwork for clarity
Merge pull request #4 from cherryn/software-testing

Updating API, fixing logic-holes.
Fix Hello.java to pass unit test
Add new data class

Email's are an immutable data type to represent and email in our
application. Unit test for construction and "isValid" included.
Fix script to build project as well as tests instead of just building
tests
Separate build and test utilities to better define what each should do
Fix build tool not stopping on build error, better to halt and make
error very apparent
Import Neo4j embedded database and create simple static class for
interfacing
Stub sample unit test for GraphDatabase
Added Stub for user and code for Citation and Session.
Modified API, added Identity interface (temperary)
-addEmail should require user to verify email with a ClaimToken just as register would; there's no reason to assume the user owns other email's.

-Updated phrasing to be consisted with proposed model:
  *TrustNodes are an individuals entry point into the trust network, Email's and Users are just associated with them.

-Fixed typos in data classes and added last night's work on identity
(Will be largely restructured soon according to http://i.imgur.com/5jQl471.jpg, but wanted things to be compiling correctly in the mean time)
Refactor GraphDatabase to have startup() & shutdown() static methods,
also fix clearDb() method to first shutdown() database
Refactor startTransaction() to give graphDb instead as nodes are created
using the graphDb instance, not the transaction object
Add -Xlint option to be more verbose on error messages
Upgrading neo4j from 1.9.3 to 2.0.0-M05, the docs are lacking for 1.9.3
and we already need 2.0 functionality
Implement GraphDatabase setup for Email
Start on unit tests for Email and Database
-Introduced class for ClaimToken, backed by UUID's
-Shifted Email to be backed by a Node
-Introduced base classes for Entity's and unique entities
-Shifted Email to Email.java.ignore until can make it usable with new
Email implementation.
-Added execute method to GraphDatabase for Cypher calls (some
abstractions like Unique and Merge are not available in Java and would
rather use Cypher than locks -- and not sure what the key value for
factories should be for relationships).
-Added base definitions for Label and Relationship types.
-Started adding tests for RelationshipFactory.
Finished unit test for RelationshipFactory
Fixed: Cypher command to create relationship: Previous one did not
specify direction of edge and so did not guarantee start Node was linked
to End node and not vice verse.

Fixed: Execution Engine not set to null on GraphDatabase shutdown, if
Database reset while running engine may be out of date and will crash
when attempts to run query after reset.