Tidy up index.php

Add some comments and re-ordered some lines.

Make the file more readable.
Centralize news source definitions

The definitions used to spread to News.php, NewsRaw.php and
crawler-new.php. Centralizing them to init.inc.php makes it easier to
maintain.

Note that the source id is still hardcoded in the addNews statement
in each crawler classes. Need to get rid of it later.
Extracted all index html get logic as crawlIndex

The crawl methods are mixing so many steps. Separating these logics
makes it easier to do unit test.

Added a crawlIndex() method in all crawlers to handle only the
downloading of indexing HTMLs in the targeting news sites.
Separated link discovery logics into findLinksIn()

Add a method findLinksIn() in all crawlers. The methods accept
HTML of some index pages then discover all useful HTML links in it.
Add the SimpleTest framework into stdlibs

Added for unit testing
Fix UDN crawler bug
Add unit tests for all crawlers that exists

These unit tests are to check crawlers against the current behaviour.
Since the current crawlers may have bugs, the current behaviour
may be strange and out of expectations.

I have put some remarks in the README.md files for some of the strange
cases.

This commit is to prevent unexpected behaviour changes of the crawlers.
The bugs of the crawlers will be dealt with later.
Setup Travis CI test
Change position of csv reference

The reference may be used in other script.
It is safer to be included in init.inc.php.
Remove NewsRaw debug information
Change the crawl mechanism

1. Define Crawler_Common interface.

2. Remove crawl() methods from all crawlers.

3. NewsSourcesCfg will validate all class definition. Must implement
   Crawler_Common interface.

4. New Crawler::crawl method for crawling. Takes news id, crawler class
   and insert_limit as argument.
Added Passion Times source

Added "Passion Times" as a source.

Implemented Crawler with unit tests.
Fix Libertytimes parse problem in Travis CI

The original parse function doesn't run correctly in Travis CI
platform. The HTML is parsed as UTF8 as it should. This problem is
strange because it does not happen in all other platform I run the
tests.

Add minor change to the Crawler_Libertytimes::parse method so it
runs correctly in both my development environment and Travis CI.
Merge pull request #9 from yookoala/url-normalizer-fix

Fix url-normalizer.js reference
Merge pull request #10 from yookoala/new_src

Add PassionTimes