add more to base interfaces

Generally the goal of this makes the base interfaces more usable. The
specific goal is to allow for a generic joining Reducer that could
create a record and then merge() all the values in that reducer group,
but I'm moving up a couple other common methods at the same time.

- make Record inherit from scala.Ordered[R] to expose compare
- add mergeCopy(R): R to Record
- create a MutableRecord mixin that Mutable and Raw records will always
  have, and add merge(R): Unit to it.
Merge pull request #42 from paperstreet/master

Add UntypedForeignKeyField with unsafeObjGetter
use JAVA_HOME
Merge pull request #41 from nsanch/master

add more to base interfaces
BSONObject enhanced type
Merge branch 'blackmad-master'
make void and one-way functions work properly

Includes functional test of Finagle Thrift using a Spindle-generated
interface.
Merge pull request #44 from tdyas/fix_oneway_functions

make void and one-way functions work properly
reorder imports
sbt hacks for java8
2.0.0-M10 bump
plugin changes
use new plugin