Separating shared variables and instance variables

This is a change that separates out the global attributes that are being shared by instances of the elements.

One of the biggest effects of this change is the ability to have multiple `google-signin` elements on the same page and not conflict or send multiple events.

The elements are also 'aware' of each other through the `core-signal` so that any time an element authenticates all other elements can determine if all their scopes have been satisfied and update accordingly.

The `defaultHandler` is a bit brittle. If you remove/delete the first attached element then the event firing breaks. But this was already the case with the last element attached. So no new brittleness has been added. Eventually we will want to fix this, but it works for now.