Improve API.

When trying to get a single object, inspect the path to make sure that
is the case. The last path component should be a valid ObjectID, so use
that in the querydict. Without this change the QuerySet returned by this
object are the entire collection, which is then filtered down. With this
change only the matching results will be returned, which should improve
performance on large collections.

Fix a bug where someone could specify a size or schema_version parameter
that does not cast to an int properly which would throw an exception.
Now, if the cast doesn't work we just use the string which will end up
returning an empty result.
Merge branch 'master' into api_improvements
Merge branch 'master' into api_improvements
Merge pull request #219 from crits/api_improvements

Improve API.
Add ability to add indicators from Event details.

View and handler for adding Indicators and auto-relating them to an
Event.
Make analysis results their own collection.

These code changes make analysis results go to their own collection. The
upgrade script is necessary for doing the migration but you can freely
spin up the UI and have things migrated on-access.

This change will allow services to utilize an entire document on their
own per-run, giving them almost 16MB of space for results instead of
having to share results with other services run for the same TLO.

This commit does not include the following things that will be done
soon:
    - An Analysis Results listing page.
    - Removing the "Yara Hits" page (still questionable).
    - Add an Analysis Results tab to global search which shows the TLO
      type, service name, service version, date of execution, number of
      results, and a link to the TLO.
        - Need to figure out how to limit these by source as well.
    - An entry in UPDATING letting people know what's going on.
Initial setup for Analysis Results jtable.

Does not limit by source yet. Does not link to the TLO yet. Is not
linked from the Nav Bar yet.
Hook up Analysis Result listing page with search.

Analysis Results now working with global search and redirect to the TLO
for the result you are looking at.
Updated UPDATING, added index creation, added Nav Menu option.

Updating now discusses what's changing and how to get your database
setup for it. Indexes were added to the create_indexes management
command for new installs. Nav Menu option to get to the Analysis Results
jTable was added.
Adding sharding on analysis_results in mongo_cluster doc.
Adding UPDATING step to clean up old analysis results.

There's a step in migrating to do this but it doesn't seem to work. Even
if we get that to work, the content I added should be run to ensure the
documents are clean.
Merge pull request #251 from crits/analysis_results

Analysis Results to their own collection.
Fix triage of samples.

The 'analysis' attribute is gone, so check for results using the
AnalysisResults object.

While here, remove analysis from Sample schemadoc.
Apply triage fix to certificates too.
Fixing up triage.

Added appropriate run_triage calls and template changes for other TLOs
where Analysis services make sense.
Merge pull request #260 from crits/triage_fix

Fix triage of samples.
Default API key for users.

New users will have an API key auto-generated for them. It will be set
as their Default key. This key will be used by CRITs for situations
where the user does not have the ability to enter an API key (such as
running services on triage).

Users have the ability to change which API key is their default one.
Users cannot revoke an API key if it is marked as their default.
Fixing typo.
Make adding a new API key show correct buttons.
Merge pull request #263 from crits/default_api_key

Default API key for users.