Moving some abstract classes to interfaces, to better use java-8 features

Change-Id: I862af4931c95cbde052130d8b7d4ac3375db782f
11 files changed