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'm not entirely sold on this change. It would result in a lot of cruft in your original use case, which is filtering out everything where `d.access !== 'public'`. In that case, every single symbol in the docs would have `public` next to it, which seems more annoying than informative.

I'm open to counterarguments, but my inclination is to go back to the old way.