Allow the universe API endpoint to be filtered.

:fork_and_knife: 

When issuing a GET request to the /universe endpoint, allow the request to
filtered based upon specified cookbooks. One or more cookbooks can be requested
with a comma separated list.

Example:

`GET /universe?cookbooks=ruby,java,clojure`

Trello card: https://trello.com/c/pWTIRvzx

Closes #504.

![i-have-no-idea-what-im-doing-dog](https://cloud.githubusercontent.com/assets/928367/3769199/4c51ef1c-18df-11e4-8267-ed852b765756.jpg)

```patch
diff --git a/app/models/universe.rb b/app/models/universe.rb
index 3b6b671..a5149eb 100644
--- a/app/models/universe.rb
+++ b/app/models/universe.rb
@@ -29,28 +29,26 @@ module Universe
     #
 
     cookbooks_to_filter = opts.fetch(:cookbooks, nil)
+    strategy = opts.fetch(:strategy, 'base')
+
+    sql = %(
+      SELECT cookbook_versions.version,
+        cookbooks.name AS cookbook,
+        cookbook_dependencies.name AS dependency,
+        cookbook_dependencies.version_constraint AS dependency_constraint
+      FROM cookbook_versions
+        INNER JOIN cookbooks ON cookbooks.id = cookbook_versions.cookbook_id
+        LEFT JOIN cookbook_dependencies ON cookbook_dependencies.cookbook_version_id = cookbook_versions.id
+    )
 
     if cookbooks_to_filter.present?
-      sql = %(
-        SELECT cookbook_versions.version,
-          cookbooks.name AS cookbook,
-          cookbook_dependencies.name AS dependency,
-          cookbook_dependencies.version_constraint AS dependency_constraint
-        FROM cookbook_versions
-          INNER JOIN cookbooks ON cookbooks.id = cookbook_versions.cookbook_id
-          LEFT JOIN cookbook_dependencies ON cookbook_dependencies.cookbook_version_id = cookbook_versions.id
-        WHERE cookbooks.name ~ '#{cookbooks_to_filter.gsub(',', '|')}'
-      )
-    else
-      sql = %(
-        SELECT cookbook_versions.version,
-          cookbooks.name AS cookbook,
-          cookbook_dependencies.name AS dependency,
-          cookbook_dependencies.version_constraint AS dependency_constraint
-        FROM cookbook_versions
-          INNER JOIN cookbooks ON cookbooks.id = cookbook_versions.cookbook_id
-          LEFT JOIN cookbook_dependencies ON cookbook_dependencies.cookbook_version_id = cookbook_versions.id
-      )
+      if strategy == 'base'
+        sql += "WHERE cookbooks.name ~ '#{cookbooks_to_filter.gsub(',', '|')}'"
+      else
+        set = cookbooks_to_filter.split(',').map { |n| "'#{n}'" }.join(',')
+
+        sql += "WHERE cookbooks.name IN (#{set})"
+      end
     end
 
     cookbooks = ActiveRecord::Base.connection.execute(sql).to_a
```

So to use the alternative strategy in your benchmark, do `Universe.generate(cookbooks: 'stuff,things', strategy: 'whatever')`.