Fix typo in NPLinkedList sorting

Fixed a method name typo in NPLinkedList.  Also implemented the sorting
class method.  It depends on the instance method implementation and
NSCopying which aren't implemented yet.
Implement NSCopying protocol in NPLinkedList

NPLinkedList now conforms to the NSCopying protocol.

This means you can now call [myLinkedList copy] and get a fresh copy.
Add merge sort to NPLinkedList

Added the ability to sort a linked list.  It uses the merge sort
algorithm.  I've added an extra method that performs the merging using a
comparator.  This isn't exposed in the header file as I didn't feel it
would be a useful function to have outside the realms of a merge sort.

The class method that was meant to sort a linked list destructively was
removed due to the nature of the recursive algorithm and the necessity
for secondary temporary lists.  This can probably be added later using
another algorithm.

There are two sorting methods, both return a new linked list.  One is
just a convenience method that calls the other.  One is a class method
the other operates on the calling object.  Neither of them are
destructive.
Add pragma to linked list fast enum protocol method

Added a #pragma tag to better organize protocol methods.

This is just a small comment change, no logic changes were made.
Add description to NPLinkedList

Added a description method override to the NPLinkedList.

It's now convenient to quickly log the contents of a linked list by
simply doing:
NSLog(@"My linked list: %@", myLinkedList);