Added function to normalise feature vectors

There are two mechanisms by which features could be normalised, either
on initial creation or as a vector. In this case I have chosen to
normalise to the unit vector for simplicity. This may need to be
adjusted depending on the effect it has on the output results.

The normalising function works by dividing the vector by its magnitude.
This is done for eac feature vector as it is added to the
ip_feature_list.