Add sentiment analysis in Twitter for SemEval

This code was used to participate in Task 2 of SemEval-2013, which is
the Sentiment Analysis in Twitter task. The features introduced in this
commit include:

- Filtering some of the textual content (URLs, dates). issue gh-1
- Using the SemEval training data for positive, negative, and neutral
    tweets (neutral can mean objective-OR-neutral). closes gh-3
- Compare the performance of a single classifier, which can output all
    labels, vs. the performance of a hierarchical classifier, which
    first performs subjectivity classification and only if necessary
    performs polarity detection. closes gh-4
- Learn from (noisy) positive / negative training instances. In this
    case, we didn't use the automatic sentiment label based on emoticon,
    however we did assume there was sentiment so we used the instances
    as unlabeled data for the polarity classifier. closes gh-2
- Use Matplotlib to plot the performance of the classifiers vs. the
    number of training instances used during training. closes gh-5
- Display the confusion matrix produced by the current classifier on the
    test set during the training process. closes gh-6

Unfortunately, the code was written without being committed during about
a week's worth of coding. In addition, there are many lines containing
approaches experimented on that have been commented out where they were.
This should eventually be cleaned up to meet the higher standards of the
rest of the project.