Add optional and provided scope

Fix for #10 
Not what provided means. Provided means it's needed for compilation, but not needed in the packaged output.

Also Dagger's documentation shows it as optional, not provided.
```xml
<dependency>
  <groupId>com.squareup.dagger</groupId>
  <artifactId>dagger-compiler</artifactId>
  <version>1.2.2</version>
  <optional>true</optional>
</dependency>
```xml