Precision/Recall now implemented

Precision/Recall is generated for each user when making recommendations,
as well as an average for a set of recommendations.

Program asks for neighbourhood size and number of recommendations,
builds an engine (if one does not already exist), and calculates
precision/recall.

Precision and recall are looking very very low. Not sure if this is a
reflection of the data, or if there is a better way to calculate metrics
(other than using a split data set).