[] Initial commit. Original version of assignment week 3.

G580|Luna|IDEA12U
[] Initial version of solution for assignment week 3. Doesn't work well yet.

G580|Luna|IDEA12U
[] Refined version of solution for assignment week 3. Passed unit tests.

G580|Luna|IDEA12U
[] Refactor back Empty to new Empty since it is what the coursera tests are using.

G580|Luna|IDEA12U
[] Default unit tests pass, everything works fine except the main method hangs forever, and coursera unit tests doesn't pass.

G580|Luna|IDEA12U
[] Fix bugs in filterAcc; re-implement union using filterAcc; Reformat code; Reduce test data so it can terminate...

G580|Luna|IDEA12U
[] Add back all real data since it is found that the issue is all about performance; Add more unit tests.

G580|Luna|IDEA12U
[] First of all, this is a fully working solution. Working means it passes all coursera unit tests. A few follow-up check-in will show
what is the problem. This version changed the following:
1. Simplify Tweet.toString so the output will be more readable and debuggable.
2. Add size method to TweetList so it can be used in unit tests.
3. Add finally most important one, which again, I don't fully understand what I am doing, but I got a sense it may change something, and it does.
It bring HUGE performance gain (3 mins vs 12 seconds when running the 'GoogleVsApple.trending' on all data in main method)

G580|Luna|IDEA12U
[] Tmp check-in 1 to show the problem. This version reduce the test data to very small amount, because the changed union method only works
for small amount of data, no matter the 'mostRetweeted' is declared as 'val' or 'def'. In fact I can't see any difference in performance
when switching between 'def' and 'val'. So in a word, union defined as: '((left union right) union that) incl elem' simply doesn't work well.

G580|Luna|IDEA12U
[] Tmp check-in 2 to show the problem. This version reduce the test data to medium amount, but large enough to show that the main method
starts struggling when I use the correct union method but with mostRetweeted method defined as 'def' instead of 'val'. Simple switch to 'val'
to see how much performance we can gain(increase test data based on needs). Also note both this version and last version doen't pass some of
the unit tests which assume all test data is available.

G580|Luna|IDEA12U
[] Switch back to 3ef6cd791, with minor change to be ready to sumit.

G580|Luna|IDEA12U