Issue #19: allow lookups to match without specifying the result type.

In other words:

> y = view (rLens' (Field :: "x" ::: t)) myRec

Will allow inferring a type for y.

One drawback is that this means it is no longer possible to store two
different types in a record with the same label type, as the following
code used to print 4 and 5:

> x = fixRecord $ (Field :: "x" ::: Int) =: 4 <+> (Field :: "x" ::: Double) =: 5
> print $ view (rLens' (Field :: "x" ::: Double)) x
> print $ view (rLens' (Field :: "x" ::: Int)) x

Perhaps a second field type should be added, to allow both choices.