Add Complete Flag for Task

Since the completed hours may differ from projected hours it is nessecary to
persist if a task has been completed.
Add Task Unit Test

Tasks are now tested in unit tests to confirm that subtask aggregation is
correct. This is important as all other aggregations depend on the data returned
by tasks.
Refactor Total Hour Methods

To perform contextual aggregations each domain object must be aggregated given a
context. This interface is implemented in totalHours which takes a context
object as well as a completed flag.
Added Complete Flag

Exisiting classes with totalHours and totalPoints now use a completed flag.
Add Complete Check for Given Task

A Single task can be queried for completeness by recursively checking all
subtasksk as well as the task completed property.

\cc @spurovita This would be worth discussing what constitutes completion for a
task and user story. The logic is easily adjusted for these contextual filters
and at this point will consider a) all subtasks complete or b) task marked
complete as conditions for completion.
Refactor UserStory

Changed UserStory API to use contextual filtering. This refactoring changes the
calls in UI to use these new methods.
Refactor Task

Removed deprecated methods updated dependencies within Sprint class.
Refactored Sprint

Sprint objects now use the updated interface.
Syntactic Error and Completion Condition

Fixed a typo for completion determination.

If a user story isComplete return 1 for progress otherwise return ratio of
completed hours versus total hours.

/cc @sperovita This ratio may go over 1 if the completed hours exceeds the task
hours indicating an underestimate. This may be valuable information for
determining story points. If a user story has x points and the ratio r
approaches 1 than x points is a good approximation for n hours.
Merge pull request #37 from benjic/optimization_wip

Optimization