Router 기능 추가

http://www.xpressengine.com/devForum/22568446

router 클래스를 추가하여 동적으로 rewrite rule을 추가할 수 있도록 수정했습니다.

module trigger나 애드온에서 rewrite rule을 추가할 수 있습니다.

ModuleHandler가 실행되기 전에 작동되어야 하기 때문에, 별도의 xml 스펙은 추가하지 않았습니다.

----------
대략적인 사용법은 아래와 같습니다.

애드온

```php
<?php
if(!defined('__XE__')) exit;

if($called_position == 'before_module_init')
{
    Router::add('([a-zA-Z0-9_]+)/write', array('mid' => '$1', 'act' => 'dispBoardWrite'));
}
?>
```

모듈

모듈에서 사용 시 트리거 등록
```php
$oModuleController->insertTrigger('moduleHandler.init', 'test', 'controller', 'triggerRouterTest', 'before');
```

controller에서 rewrite rule 추가
```php
<?php
class testController extends test
{
    public function triggerRouterTest(&$obj)
    {
        // mid/write 형식의 URL을 인식하도록
        Router::add('([a-zA-Z0-9_]+)/write', array('mid' => '$1', 'act' => 'dispBoardWrite'));

        $mid = Context::get('mid');
        $act = Context::get('act');
        $is_feed = ($act == 'rss' || $act == 'atom') ? TRUE : FALSE;

        // Context::getUrl()에서 mid/write 형식의 URL을 생성할 수 있도록 map 추가
        if($is_feed)
        {
            Router::setMap('act.mid', "$mid/$act");
        }
        else
        {
            Router::setMap('act.mid', ($act == 'dispBoardWrite') ? "$mid/write" : '');
        }
    }
}
```