ARQGRA-408 Introduced SPI for custom location schemes

@lfryc (@jhuska @kpiwko )

Changes in SPI module

1) Scheme class is in SPI as you wanted
2) LocationDecider interface is in SPI as well

Changes in IMPL module

1) Implementations of LocationDecider are in org.jboss.arquillian.graphene.location.decider
2) Deleted LocationDeciderInitializer class -> used ServiceLoader in LocationEnricher as you wanted
3) Deleted LocationDeciderRegister as you wanted
4) Only deciders are added to GrapheneExtension as previously.

Usage:

```java
@Location("http://www.google.com") // by default scheme = Scheme.HTTP.class when omitted
@Location("https://www.google.com") // works with https as well, scheme is same
```
Full specification
```java
@Location(scheme = Scheme.HTTP.class, value = "http://www.google.com")
@Location(scheme = Scheme.HTTP.class, value = "https://www.google.com")
@Location(scheme = Scheme.FILE.class, value = "file:///full/path/to/page.html")
@Location(scheme = Scheme.RESOURCE.class, value = "resource://...")
```

I can not do it via enumeration since it would not be extensible. I can use only primitive types / class in Location annotation so no interfaces as well. I chose class-based approach.

*How do I implement my own Scheme?*

1) I extend Scheme class like this

```java
public DroidiumScheme extends Scheme
{

    private static final String scheme = "and-activity://";

    @Override
    public String toString()
    {
        return scheme;
    }
}
```

2) I implement my own DroidiumLocationDecider which implements LocationDecider interface which is in Graphene SPI as well.

*I depend only on SPI module from Graphene as you wanted when implementing custom scheme.*

3) I use it like

```java
@Location(scheme = DroidiumScheme.class, value = "this.is.my.activity")
```

_Default scheme_

will be set in configuration like this

```xml
<extension qualifier="graphene">
  <!-- Droidium everywhere -->
  <property name="scheme">org.arquillian.droidium.native_.spi.location.DroidiumScheme</property>
</extension>
```

I added there stripped SecurityActions to instantiate that custom scheme from String from configuration.

I can use it like this afterwards:

```java
@Location("this.is.my.activity")
public class SomeActivity
{
}
```

So I can do this afterwards:

```java
@Mobile
@Page
private SomeActivity activity;

@Test
public void someActivityTest(@InitialPage @Mobile SomeActivity activity)
{
}
```

Edit:

There is a bug in the original implementation here

https://github.com/arquillian/arquillian-graphene/blob/master/impl/src/main/java/org/jboss/arquillian/graphene/location/LocationEnricher.java#L142

It throws an exception when file does exist which is obviously wrong.