(CDAP-378) Refactor Service implementation

- Cleanup cluttered code about ProgramRunner implementation for Service
  - Follow why other ProgramRunner model is
- Refactor ServiceWorker API to use configurer.
- Added support of @Property annotation
Can be similar to ``triggerShutdown``. 

```java
if (serviceWorker != null) {
  serviceWorker.destroy();
}
```