Added Reads and Writes support for Enumerations. Fixes #2050

Ok, you want me to aggregate the specs matchers with and like in the following? Didn't know you could do that :)

```scala
(json.validate((__ \ "day1").read(Reads.enumNameReads(Weekdays))).asOpt must beSome(Weekdays.Mon)) and
      (json.validate((__ \ "day2").read(Reads.enumNameReads(Weekdays))).asOpt must beNone) and
      (json.validate((__ \ "day3").read(Reads.enumNameReads(Weekdays))).asOpt must beNone)
```

Plus, I didn't use scalariformFormat. What's the process now? Should I create a new PR or add a commit? Anything else I have to check?