Rewrite patch

Contains the following edits:
* patches now specified as faces and vertices. Less text for patches that share same vertices.
* handles polygon patches
* hyperlinked the github and fex links (clickable now)
* Added `patchOpt` practically very similar in fashion to `surfaceOpts` but more flexible and contains some fixes on top of `surfaceOpts`. Objective is to have one shader/plotType subfunction.
* `m2pgfColormap` more flexible to allow multiple colormaps. This allows to have individually colored faces or (to do) vertices with specific colors, i.e. when cdata is a 3d array (not possible before).
* Added `\usepgfplotslibrary{patchplots}` requirements in standalone and otherwise userInfo notification.

I ran acid test as of 426f62e1f809fc30d90b9ef1ddf0d1ad3b6a30fa tagged as before as 71411657452330cb907401b97c8490a3b13349c7. Both on dropbox.
before: https://www.dropbox.com/s/37ftzbbw1drwjgt/before.pdf?dl=0
after: https://www.dropbox.com/s/dmg7wbuudus4ff6/after.pdf?dl=0
 
An example of patch:

![capture](https://cloud.githubusercontent.com/assets/3731173/4816795/dbd9efa6-5ee2-11e4-9f06-7ee6eb111e80.PNG)

produced with

```matlab
close all
xdata = [2 3; 
         2 3;
         3 4;
         4 5;
         4 5];
ydata = [1 3
         2 4
         3 5
         2 4
         1 3];
zdata = ones(5,2)*10;
cdata = [15 30
         10 20
         10 30
         2   1
         5   30];
p = patch(xdata,ydata,zdata);
set(p,'FaceColor','flat','Cdata',cdata)
```

**Warning**
I will do some extensive testing on merging `surfaceOpts` and `patchOpts` and create proper testfunctions to experiment what patches can do. I expect that I got some things wrong, but this is already enough commits for now. 
That's indeed a good idea, I'd say. Because those functions, while they look great, they do contain quite some repeated code.

What I meant with that remark: I think it's better style to replace
```matlab
opts = cell(0);
opts{end+1} = sprintf('key1=%f', value1);
opts{end+1} = sprintf('key2=%s', value2);
optStr = join(m2t, opts, ',')
```
with something like
```matlab
opts = cell(0,2);
opts = addToOptions(opts, 'key1', sprintf(m2t.ff, value1));
opts = addToOptions(opts, 'key2', value2);
optsStr = prettyPrintOpts(m2t, opts, ',');
```
(Note that this is mostly by heart, so the code could be slightly off)

The latter puts an extra layer of abstraction and would thus allow to both change the underlying storage mechanism at one point or another (I'm currently experimenting with that in a private branch) and it provides more high-level functionality: uniform formatting, consistency checking, removal of a key, ...

The changes I'm currently looking at would lead to something like 
```matlab
opts = opts_new()
opts = opts.add('key1', sprintf('%f', value1));
opts = opts.add('key2', value2);
optsStr = opts.format(m2t);
```