[core] Added support for Optional Dependencies

  * These behave just like maven dependencies, as they are used for the project
    when it's being compiled, but are not propagated to the 'project.properties'
  * Updated the Maven Plugin to properly mark optional dependencies