Add access parameter

The idea behind adding the "access" parameter is to generate documentation by only displaying objects that match the parameter settings. The parameter can have the values ```public```, ```protected```, ```undefined``` or ```private``` and multiple access parameters may be specified.

E.g. ```--access public --access protected``` will exclude ```undefined``` and ```private``` objects from the documentation.

To facilitate this a split between 'access undefined' and 'access public' is being introduced, which allows detection later on in the process. Tests have been expanded to include new test cases.

(This is a revised version of pull request jsdoc3/jsdoc#816)
I figured dropping the ```--private``` option was not an, errr..., option. 

I agree the line is ugly. However, the check should work correctly, as the [original unit test](https://github.com/Raptor399/jsdoc/blob/accessparam/test/specs/jsdoc/util/templateHelper.js#L987) validates the case you describe.

I also added tests for the ```--access``` cases. I did not add a combined ```--private``` and ```--access private``` case because if they test correctly separately, they should automatically test correctly combined.

I am a bit afraid of touching the ```jsdoc/opts/args``` code, plus I do not like adding a side effect to the parsing of arguments when it is not strictly necessary. I will leave this one as is, but you are of course free to rewrite the code as you see fit.