For point 1:
Okay, so to receive BC power, you must have a PowerReceiver. This is non-negotiable. End of story.
Awesome, so you just add one to your class, and store in another structure or another type of energy? Oh no wait, it's private to PowerHandler. Also non-negotiable, end of story.
The only option you have is to add a PowerHandler. Meh, fair enough, just override the PowerReceiver and change the behavior to point to your custom structure. Oh wait, it's FINAL. Once again, end of story. There is literally one way to accept BC power. Talk to AlgorithmX2 at some point - he has to do a rather ugly hack to change the power stored and is not fond of doing it.
PowerHandler is a very large class, containing multiple SafeTimeTrackers and assorted helper gremlins. It literally requires 100+ bytes of memory to be able to accept MJ. Kinesis pipes are a special case it seems, as they can send to each other under a slightly lighter weight framework, but the wooden ones still need this rather large class.
As far as point 2...
You know how to use github. Trace through a power request and power receive for MJ. Then trace through the same for RF.
I'll help you out, here's how RF works:
"Hello RF-receiving tile, have some power."
"Why thank you. Here's how much I accepted."
"That concludes our transaction. Have a nice tick."
With MJ, there's a bit more involved.