[RFC] basic float16 support (closes #3467)

The implementation is bit haphazard, but the basics seem to work.