Move Semantics
lvalues VS rvalues
How do we distinguish between when we CAN and CANNOT move?

move constructor and assignment
How do we actually move?

std::move
Can we force a move to occur?

swap and insert
How do we apply move?

perfect forwarding
Can we apply this to templates?