Okay gonna give this a bumb now that I'm interested in working on the game again

I'm pretty sure I wanna go with JBullet because it has what I want but I have a few questions about using it.
How should I handle terrain?. It should vary in height and have buildings, roads, powerlines and all kinds of other things that can be interacted with.
If I have an arraylist containing all game entities, should I store the RigidBody as a field in each entity and use it to determine the location of it? What about rendering the entities?
I need to use MotionStates to handle collision response right? I need to be able to bounce an entity off collided entity and apply damage that depends on how hard the entity was hit.