Dependency loader improvements

* [x] Support driver side loading only (skipping sc.addJar())
* [x] Making driver side loading default.
* [x] Propagate error
* [x] Add zeppelin to exclusion list
* [x] Make local repo location configurable.


API is changed
```
// load locally (scala compiler & runtime's classloader)
z.load("groupId:artifactId:version")

// load locally, with it's dependencies
z.load("groupId:artifactId:version", true)

// load and add into spark environment (load locally + sc.addJar())
z.loadAndDist("groupId:artifactId:version")

// z.loadAndDist + dependencies
z.loadAndDist("groupId:artifactId:version", true)
```