Ensure full width attachment thumbnails aren't teeny-tiny
Don't strip extra newlines

This was causing extra line breaks to be completely deleted.
Add migration to repair badly imported specialist guides

The guides were imported with a bad regular expression (see da29b5),
this migration repairs them.
Ensure public index pages don't cause n+1 selects.
IE6 bug fixes, org names not appaering inline, content overlapping on people and minister pages and so on
Remove an n+1 select from the organisations index.
Merge branch 'master' of github.com:alphagov/whitehall
Refactor document filter to accept params

The fluid interface just complicates things. Accepting params makes it
simpler and reduces the impedance mismatch with respect to the way it's
used within the controllers.
Use static methods rather than scope

Using static methods allows the scopes to be overridden by derived
classes. If the scope declaration is used, then a warning is raised when
the scope is re-declared in a derived class.

By default editions will use first_published_at to order or filter
themselves on publication date. Publications will used the
publication_date which is manually specified.

I also added some unit tests for these methods.
Derive NewsArticle and Speech from Announcement

We also change Announcement from being a simple ruby object to being an
ActiveRecord object (derived from Edition).

This will allow easier querying/filtering for announcements, such as
Announcment#in_topic.
Add filtering to announcements page

I've deliberately removed Topic#with_content_of_type as it seemed like
premature generalisation, and instead added specific with_related_X
methods for the three types which are actually used at the moment.

The implementation of Topic#with_related_announcements uses an EXISTS
subquery which should be quite efficient, but we may want to consider
moving to a pre-calculated implementation like
Topic#with_related_publications.
Fix broken filter page table layout

The width 100% is correct, but presumably ie6 table layout calculations
are broken, so it needs a different value.

We should use 85% width only for ie6, not for modern browsers.
Introduce EditionTestCase

This TestCase inherits from ActiveSupport::TestCase and includes the
DocumentBehaviour module.  This removes some of the duplication
introduced by us including DocumentBehaviour into multiple individual
test cases.  I think this makes it slightly more explicit that these
tests are about Editions too, although I understand that that's slightly
subjective.

Changing the superclass of SpeechTest also alerted me to the fact that
we'd used the same test class name in two places: I renamed the class
name in vanity_redirector_test to reflect the filename.
Ensure that all Edition types can have images

I'm going to be removing the ability for Consultation Responses to have
image attachments, but before doing so wanted tests in place to check
that I don't break the expected behaviour of other edition types.
Make the Images test more generic

This test should be focussed on testing the behaviour in the
Edition::Images module.  Following on from the approach we use in
alternative_format_provider_test.rb, I've introduced a new Edition
subclass that includes nothing more than the Images module.  Prior to
this, we were actually testing Policies with no guarantee that we
weren't testing Policy specific behaviour.

I wonder whether it'd be possible/easy to add test class specific
factory-girl factories to these types of tests, so that we can remove
some of the duplication introduced by our having to manually build the
objects required. That can wait for now, though.
Move a test to a more suitable class

This is testing behaviour supplied by the Edition::Images module so
let's test it alongside its brethren.
Clarify the parameter the hero_rotator expects

The hero_rotator can display any edition, not just news_articles.  I
think the use of news_articles as the variable name is just a hangover
from its past life.
Bugfix: avoid duplicates in topic lists
Remove images from Consultation Responses

I've introduced a NullImages module that implements some of the public
interface of the Images module, notably the 'reader' methods.  This
allowed me to reduce the number of changes I had to make to the
application as we can continue to assume that all editions respond to
`#images` and `#lead_image`.  I think I quite like this approach even
though I think it's slightly different from what we've done in the past.
Disable inline attachment help for consultation responses

We're going to be displaying all consultation response attachments in a
set layout so we don't want people adding inline attachments.