join specs expectations with 'and'

Only the expectation returned in a spec is used for success/failure
evaluation. Multiple clasues must be and'ed to gether. Also, add some
naked expectations into proper specs in 'SerializationExamples' and
'LottoExample' so they are evaluated by the specs runner.
optimized version of compact(render(json)) using a StringBuilder

For large JValue objects, the `compact(render(value))` can be very CPU
intensive. This adds a `compactRender` convenience method that renders
a JValue directly to a String without the intermediate Document. A
StringBuilder is used to avoid String concatenations.

I added a new benchmark comparing the two serialization operations.
Results on the large JValue running on core i7 MBP:
lift-json (ser compact(render(jvalue))	45607ms
lift-json (ser compactRender(jvalue)	35144ms

So the performance improvement can be quite large.