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>
```
I ran into a problem wherein some browsers throw an error when properties on the progress object are assigned to, even if the assignment is mediated through a binding.

More specifically, core-range assigns to its `value` here, preventing `ratio` from being updated in `update()`: https://github.com/Polymer/core-range/blob/b52baf8a3aec207caf044a3fe4434f45f79f56bc/core-range.html#L96

My thinking is that this direct usage of progress.length and friends with core-range is desirable enough to make the proxy worthwhile.

I've extended the test a bit to catch this issue (and also fixed a flakiness issue). Assigning `this.progress` directly now reliably fails the test in Safari 7 if you want to check it out (Firefox thinks that the test request's length isn't computable – despite the Content-Length header – but you can see it has the issue in the demo page).