Extensions install now supports pecl and github repository

`phpbrew ext install` now support extension that hosting at pecl or github.com.

Now you can install extension from github.com using `https://github.com/<owner>/<repo>` or `git@github.com:<owner>/<repo>.git` url.

Install phalcon by phpbrew:
```
phpbrew ext install https://github.com/phalcon/cphalcon
```
or
```
phpbrew ext install git@github.com:phalcon/cphalcon.git
```

By default , `phpbrew ext install <extname>` will install extension from pecl.php.net except you using URL as extension name.

So you can register github project with shortcut name to `assets/github-extensions.json` , 
ex: 
```
 "phalcon": {
        "desc": "Phalcon is a web framework implemented as a C extension",
        "url": "https://github.com/phalcon/cphalcon"
    }
```
NOW, we can install phalcon by `phpbrew ext install phalcon` just like normal pecl extension .


And new `phpbrew ext known` command let you query available version of extension, that support pecl and github.com 's tags.

for example:
`phpbrew ext known xdebug` will output like bellow:
```
[==================================================================] 1.74/1.74KB 100%


2.2.6, 2.2.5, 2.2.4, 2.2.3, 2.2.2, 2.2.1, 2.2.0, 2.2.0RC2, 2.2.0RC1, 2.1.4,
2.1.3, 2.1.2, 2.1.1, 2.1.1RC1, 2.1.0, 2.1.0RC1, 2.1.0beta3, 2.1.0beta2,
2.1.0beta1, 2.0.5, 2.0.4, 2.0.3, 2.0.2, 2.0.1, 2.0.0, 2.0.0RC4, 2.0.0RC3,
2.0.0RC2, 2.0.0RC1, 2.0.0beta6, 2.0.0beta5, 2.0.0beta4, 2.0.0beta3, 2.0.0beta2,
2.0.0beta1, 1.3.2, 1.3.1, 1.3.0, 1.3.0rc2, 1.3.0rc1, 1.2.0
```

`phpbrew ext known phalcon` will output like bellow:
```
[==================================================================] 8.41/8.41KB 100%


phalcon-v1.3.4, phalcon-v1.3.3, phalcon-v1.3.2, phalcon-v1.3.1, phalcon-v1.3.0,
phalcon-v1.2.6, phalcon-v1.2.5, phalcon-v1.2.4, phalcon-v1.2.3, phalcon-v1.2.2,
phalcon-v1.2.1, phalcon-v1.2.0, phalcon-v1.1.0, phalcon-v1.0.1, phalcon-v1.0.0,
phalcon-v0.9.0, phalcon-v0.8.0, phalcon-v0.7.0, phalcon-v0.6.1, phalcon-v0.5.3,
phalcon-v0.4.5
```

Signed-off-by: Rack Lin <racklin@gmail.com>
Since we can look up a repository through `owner/repo`, could we just lookup `owner/repo` instead of an external source list? (or maybe it can be optional source list) to let users install packages that are not defined in the source list.

And could you describe the original idea behind this implementation? thanks!