Resultset date range

**READY FOR MERGE**

* Add support for filtering ``resultsets`` by date or revision ranges.  You can use ``startdate`` and ``enddate`` or ``fromchange`` and ``tochange``.  These are the same params as in tbpl currently.  They are converted to ``push_timestamp__gte`` or ``__lte`` or ``__lt`` where appropriate.
* add check if you try to map a job to the same bug twice, it silently skips it, rather than a 500 (pivotal tracker issue)

This changes the return value from the ``/resultsets/`` endpoint to have some metadata.  The main part that was needed was, if a ``fromchange`` or ``tochange`` range was specified, the UI wouldn't know what dates that applied to.  So the ``push_timestamp`` values they apply to are now returned in the ``meta.filter_params`` object:

    {
        "meta": {
            "count": 3,
            "fromchange": "c7e3145bdea7",
            "tochange": "6f5a918051d5",
            "filter_params": {
                "count": "10",
                "full": "false",
                "format": "json",
                "push_timestamp__lte": 1397515448,
                "push_timestamp__gte": 1397514480
            },
            "repository": "mozilla-inbound"
        },
        "results": [
            {
                "repository_id": 2,
                "job_counts": { … },
                "revision_hash": "5e27165fc774d6e3ef73f950cb9ea08aea5e9950",
                "revision_count": 1,
                "author": "Jeff Gilbert <jgilbert@mozilla.com>",
                "platforms": [ … ],
                "revisions_uri": "/api/project/mozilla-inbound/resultset/17/revisions/",
                "push_timestamp": 1397515448,
                "id": 17,
                "revision": "6f5a918051d5"
            },
            { … },
            {
                "repository_id": 2,
                "job_counts": { … },
                "revision_hash": "745022ff7ba4d38749ef36a10d3ac53244171be1",
                "revision_count": 1,
                "author": "Ryan VanderMeulen <ryanvm@gmail.com>",
                "platforms": [ … ],
                "revisions_uri": "/api/project/mozilla-inbound/resultset/15/revisions/",
                "push_timestamp": 1397514480,
                "id": 15,
                "revision": "c7e3145bdea7"
            }
        ]
    }

This addition is only made to the ``/resultsets/`` endpoint at this time.  We may choose to do it to other **list** endpoints at some point.  I added this so that we can determine the source ranges used to query for a repo in the model on the UI.  The UI can then determine if incoming socket.io events for new jobs are within that range.  For dates, it was easy, but ranges can also be specified by **revision**.  And the UI doesn't know the dates associated with a revision.  The service converts revisions into their respective dates and adds them to the ``query_params`` here.