User Interface Updates

-Use material design icon in action bar
-Use newer sdk
-Update interface
We use `final` to avoid mutability, mutability is the source of evil. Only use mutability when you know something needs to change, in this case, you don't ever want anybody re-assigning the weak reference holding variable.

So whenever possible you want to define properties as `private final`.

As for the `static` on the class, @aldenml probably has a good explanation.