Kill underused typealias, Values

This was more useful before the introduction of Expression.

Signed-off-by: Stephen Celis <stephen@stephencelis.com>
Add custom datatype support

This will be more helpful when proper BLOB support is available (for
easy serialization/deserialization of binary data (images, etc.), but in
the meantime it allows you to support dates flexibly.

E.g., an NSDate TEXT column:

    extension NSDate: Value {
        public typealias Datatype = String
        public class var declaredDatatype: String {
            return Datatype.declaredDatatype
        }
        public class func fromDatatypeValue(datatypeValue: Datatype) -> NSDate {
            return formatter.dateFromString(datatypeValue)!
        }
        public var datatypeValue: Datatype {
            return formatter.stringFromDate(self)
        }
    }

Or, an NSDate INTEGER column:

    extension NSDate: Value {
        public typealias Datatype = Int
        public class var declaredDatatype: String {
            return Datatype.declaredDatatype // or "DATETIME"
        }
        public class func fromDatatypeValue(datatypeValue: Datatype) -> NSDate {
            return self(timeIntervalSince1970: NSTimeInterval(datatypeValue))
        }
        public var datatypeValue: Datatype {
            return Datatype(timeIntervalSince1970)
        }
    }

Signed-off-by: Stephen Celis <stephen@stephencelis.com>