Changes to allow Gii and other modules to easily add their own UrlManager rules.

These modifications allow modules to add their own routes without having to create their own UrlRule objects and manually add them to the UrlManager.

Refactors compileRules() and separates functionality into public functions parseRule() and addRules().

function parseRule($pattern, $route) creates and returns a UrlRule object, as per the original code. Can be used to generate rules separately if desired.

function addRules($rules, $addToBottom) takes a typical array of rules and adds them to the UrlManager rules. Can be used to add additional routing rules after the app has loaded. Adds to the top of the list by default to override preconfigured rules; TRUE for the second parameter will place them at the bottom of the list.

This setup saves people from having to manually add routes, such as to override their site's routes to make Gii work. Could also be useful for other modules, providing a customizable path (i.e. automatically have '/dave/' refer to the 'blog' module by creating a route to match).

Designed to NOT cache rules added after the fact, otherwise we are constantly rewriting the cache.