Refactor tasks and services to accept only options with url

attempt to resolve #420

this is my first pass at refactoring Service and Task to expect `{url: 'myUrl'}`

i've manually tested about a dozen samples that demo all the different classes in the API and they all behave as expected
i also refactored the tests (which helped me catch a few bugs along the way).
all new tests are passing.