Refactored smells out of document/serialization.rb

Smells reported by reek:

Before:

33: NoBrainer::Document::Serialization#serializable_hash contains
    iterators nested 2 deep (NestedIterators)
15: NoBrainer::Document::Serialization#serializable_hash has approx
    11 statements (TooManyStatements)
33: NoBrainer::Document::Serialization#serializable_hash has the
    variable name 'a' (UncommunicativeVariableName)
26: NoBrainer::Document::Serialization#serializable_hash has the
    variable name 'n' (UncommunicativeVariableName)

After:

Nothing to report

Notes:

Removing the smells in question without introducing a lot more smells
required fairly liberal use of Extract Method.

Methods that act on self were extracted into private methods, and
methods that don't were extracted into class methods.

One caveat is that the serialization module is specified explicitly in
the private serialization_class method, because I didn't think it would
be kosher to force the class methods into every class that includes the
serialization module.