Add Prawn::View

This is a very basic alternative to subclassing `Prawn::Document`, with the main benefit of separating user code from Prawn's internals. 

There's no shared state here between the document and whatever class `Prawn::View` gets mixed into, and there is no late binding of methods, so redefining a method Prawn relies on internally will not cause conflicts.

Since the practice of subclassing Prawn::Document is already widespread, we might benefit by offering this safer alternative. It also gives us a jumping off point for adding new conveniences for users.

Leaving this open for commentary for a few days, then will add documentation and merge unless anyone has objections.