Add support for file upload fields.

File upload fields are supported in two ways through the
DSL: one, using a bare fileUploadField call, the other using
a typed fileUploadField call which expects a converter
function that will take FileParamHolders and turn them into
Box[T]s. Other than this basic fact, file fields are identical
to regular fields and can take the event handlers and
validation functions.
Add specs2 dependency, fatal warnings.
Add basic field spec. It currently fails.

In particular, there's an infinite loop in field[T](selector) and an
overload resolutione error in the field function.
Fix field[T](selector) to not infinitely recurse.
Rename fileUploadField[T] to typedFileUploadField[T].

It's a significantly uglier way to do it, but we can't have both a
fileUploadField(selector: String) and a
typedFileUploadField[T](selector: String), even though the latter takes
an implicit parameter. Sad face.

More work may come in that domain, we'll see.
Add lift testing dependencies.
Rename S context for specs, add SessionContext base trait.

The SessionContext exposes the sessions for tests to use if necessary.
Nuke -Yrangepos parameter for sbt.

It doesn't play nice with our crazy HList stuff, sadly.
Add basic specs for form submission.
Conversion failures provide ParamFailure with incoming value as param.

This does not apply for validation failures. This is because validation
failures carry the validation errors as their param.