Add progress and loading attributes; includes docs, demo, and test.

Use case looks something like:

```html
<input value='{{val}}'>
<core-ajax auto url='/search/{{val}}' loading='{{loading}}' progress='{{progress}}' response='{{response}}'>
</core-ajax>

<template if='{{loading && !progress.lengthComputable}}'>
  <img src='/img/spinner.gif'>
</template>
<template if='{{loading && progress.lengthComputable}}'>
  <paper-progress min='0' max='{{progress.total}}' value='{{progress.loaded}}'></paper-progress>
</template>

<template if='{{!loading}}'>
  <my-results results='{{response.results}}'></my-results>
</template>
```
what I'm not understanding is why we are assigning to a read-only field in the first place. Here's how I see it:

* core-range is supposed to mutate its value property
* ProgressEvent is not meant to have its fields mutated

IMO, those should not be bound directly to each other.