Initial commit of AQI spice

What does your Instant Answer do?
- Display air quality indices of locations identified by ZIP code (currently only in the US).

What problem does your Instant Answer solve (Why is it better than organic links)?
- It's only one or two relevant numbers, it's a waste of time to follow links to find them.

What is the data source for your Instant Answer? (Provide a link if possible)
- www.airnowapi.org

Why did you choose this data source?
- It is the only one I found until now that provides JSON.

Are there any other alternative (better) data sources?
- I hope so, ideally the instant answer would not just support US locations.

What are some example queries that trigger this Instant Answer?
- aqi 20002

Which communities will this Instant Answer be especially useful for? (gamers, book lovers, etc)
- everyone living in a city where air quality is a concern (China would have been my idea, but I couldn't find a source providing a JSON API)

Is this Instant Answer connected to a DuckDuckHack Instant Answer idea?
- Yes, I added one: https://duck.co/ideas/idea/4642

Which existing Instant Answers will this one supersede/overlap with?
- I couldn't find anything related to air quality.

Are you having any problems? Do you need our help with anything?
- Finding more sources is most important.
- Authentication to the API (see below)

What are the terms of use for the API? Will DuckDuckGo need specific authorization (e.g. an API key)? Are there any costs associated with API usage?
- It needs an API key, currently it is an account I just created for test purposes and it is hardcoded. I don't know if that key allows duckduckgo to use the API of airnowapi.org productively.

Where did you hear about DuckDuckHack? (For first time contributors)
- news.ycombinator.com

What does the Instant Answer look like? (Provide a screenshot for new or updated Instant Answers)
![image](https://cloud.githubusercontent.com/assets/2337235/5056405/d655f35c-6cbd-11e4-950d-a8b195a4add6.png)


Checklist

Please place an 'X' where appropriate.

[X] Added metadata and attribution information
[] Wrote test file and added to t/ directory
[X] Verified that instant answer adheres to design guidelines (https://duck.co/duckduckhack/design_styleguide)
[X] Verified that instant answer adheres to code styleguide (https://duck.co/duckduckhack/code_styleguide)
[] Tested cross-browser compatibility (I'm currently having serious problems with my internet connection, I can test more later.)

    Please let us know which browsers/devices you've tested on:
    - Windows 8
        [] Google Chrome
        [] Firefox
        [] Opera
        [] IE 10

    - Windows 7
        [] Google Chrome
        [] Firefox
        [] Opera
        [] IE 8
        [] IE 9
        [] IE 10

    - Windows XP
        [] IE 7
        [] IE 8

    - Mac OSX
        [X] Google Chrome
        [] Firefox
        [] Opera
        [] Safari

    - iOS (iPhone)
        [] Safari Mobile
        [] Google Chrome
        [] Opera

    - iOS (iPad)
        [] Safari Mobile
        [] Google Chrome
        [] Opera

    - Android
        [] Firefox
        [] Native Browser
        [] Google Chrome
        [] Opera
`looks_like_number()` might be a bit of overkill. A simple regex check should suffice here:

```perl
handle remainder => sub {
     my $query = shift;
     return unless $query =~ qr/^\d{1,5}$/; #check if the entire remainder string is 1 to 5 digits long;
     return $query; # we know it exists, it's a number and it has at most 5 digits;
}