Add optional and provided scope

Fix for #10 
Provided means that the user must provide it. The user will provide it as a provided jar.