Add JHelperPath class in cms libraries

## Introduction

When we have to get a component path, we use `JPATH_COMPONENT` now. But this constant is dynamic, we can't get a component path in other component. And if we get Model of a component, we need add some path first:

``` php
JForm::addFormPath( COMPONENT_PATH . '/models/forms');
JForm::addFieldPath( COMPONENT_PATH . '/models/fields' );

$model->addTablePath(COMPONENT_PATH . '/tables');

$model->getForm();
$model->getTable();
```

Model cannot guess path they located.

## The new PathHelper

Now we can use `JHelperPath` to get extension path, for example:

``` php
JHelperPath::get('com_content'); // /var/www/joomla/components/com_content

JHelperPath::get('mod_latest_news', 'site'); // /var/www/joomla/modules/mod_latest_news

JHelperPath::get('plg_system_debug'); // /var/www/joomla/plugins/system/debug

JHelperPath::getAdmin('tpl_isis'); // /var/www/joomla/administrator/templates/isis

JHelperPath::getAdmin('com_content', true); // components/com_content (Relative path)
```

With this class, controller and model will be able to guess where they located:

``` php
// Set the default view search path
if (array_key_exists('table_path', $config))
{
	$this->addTablePath($config['table_path']);
}

// Guess component position
elseif (!empty($this->option))
{
	$this->addTablePath(JHelperPath::get($this->option) . '/tables');
	$this->addTablePath(JHelperPath::get($this->option) . '/table');
}

// Use constant
elseif (defined('JPATH_COMPONENT_ADMINISTRATOR'))
{
	$this->addTablePath(JPATH_COMPONENT_ADMINISTRATOR . '/tables');
	$this->addTablePath(JPATH_COMPONENT_ADMINISTRATOR . '/table');
}
```







Just double check.