CI Artifacts: exclude paths
### Problem to solve
Without ability to exclude folders from an artifact, the path to every folder must be explicitly referenced which is difficult to maintain.
Example: During my CI build I want to cache my whole build folder but pass only a subset of it as an artifact.
### Intended users
* Development Team Lead
* Software Developer
* DevOps Engineer
* Systems Administrator
### Proposal
* Allow user to define excluded paths in the `gitlab-ci.yml` file. Something like:
```
build_job:
stage: build
cache:
key: build_cache
paths:
- build/
script:
- mkdir -p build && cd build && cmake .. && make
artifacts:
paths:
- build/
- some/**/directories
exclude:
- build/dont-include-this-folder/
- some/**/directories/*.txt
```
* When a path has both an `include` and `exclude` specified, both conditions must be satisfied for the file to be included in artifacts, making it inconsequential the order is which the conditions are check.
* Globbing is supported (globs and double star globs) since GitLab Runner is using https://github.com/bmatcuk/doublestar library.
* Printing of the amount of excluded files based on an exclusion rule is supported:

### Links / references
### Availability & Testing
* Unit test changes
* Feature requires new unit tests
* Ensure existing behaviors are not compromised.
* End-to-end test change
* No end-to-end testing required
* package-and-qa required - please trigger this job and it should pass in MR
issue