Implemented a bunch of neutral and warlock cards

Little hazy on the whole situation for battlecries, I put a bunch in the battlecries.py file and a few directly in the card files.
Sense Demons isn't complete, I'm not sure if I can use "minion.minion_type is MINION_TYPE.DEMON" and I don't know how to get the drawn cards to not be in the deck.
What are we actually using card rarities for?
Still need to clean up some battlecries to avoid hero targeting steps, (How to target enemy hero for Nightblade battlecry, since you said it needs to be done differently than mindspike.
Can someone check the 3 giants in neutrals to make sure I didn't do something dumb like subtract a string from a number?  
Is there a variable for max health for heroes, if not I need it for Jaraxxus.  
I don't know enough about creating minions to get battlecries to summon the extra minion in the correct position.
Also, make sure the discard() function in game_objects looks like we want it to.
I added a bunch of neutral cards that don't really do anything new (Chillwind Yeti, Ironforge Dwarf, etc.).  Do I need to add tests for every card or just complicated ones/ones that do new things?  
Either way, I have a ton of tests to write still.