Issue title: [Enhancement] Weighted system for filtering Pokebank.
 Issue body: I originally made the issue #498 but a bit more detail to CpM has come to light.

At the end of the day, CpM is responsible for cost of power up.
>- Higher CpM == less stardust spent in the end to max out Pokemon lvl.
>- For reference, see [CpM Levels](https://github.com/justinleewells/pogo-optimizer/blob/master/data/game/level-to-cpm.json), [CpM explanation](https://gist.github.com/pingec/9aa0826583f23f97c658af93d05136f7) and [infographic](http://pingec.si/publish/magikarp.png).

So, I wanted to re-focus the issue.

I've currently begun setting my thresh hold to 98% IV w/ a max of 5 quantity.

As this list begins to fill out I'll want to have a way to automatically identify my strongest options.

[Move Set List for Gen 1](http://pokemondb.net/move/generation/1)

Let's for example sake say I have 5 Alakazam..

# @
- 100% x 2, 99% x3

- Of those 100% CpM is .3 and .7
- Of those 99% CpM is .3, .5 and .7

[Alakazam Gen 1 Learnset](http://bulbapedia.bulbagarden.net/wiki/Alakazam_(Pok%C3%A9mon)/Generation_I_learnset)

Now, let's say of the 100%
- .3 CpM has Psychic & Psybeam 
- .7 CpM has Psybeam & Confusion

I can confidentally say now that even though it will ***cost*** me more to level up the .3 CpM 'mon - **it's worth it.**

Make up some instance for the 99% - I think you get it.

This will require a simple framework like Spark to introduce a localized database that builds on launch if empty consisting of possible movesets, values and types.

So, we currently have threshhold configurations for CP & IV.

This would introduce a possible few new ones..

- **moveset_filter**
- If IV == IV, then sort based on moveset strength.
- This wouldn't be a sort_by as you'd almost always want this true as it still take into your other sort_by configs before injecting it's rule.

I have a max of 2 set @ 98% IV
- New 98% is caught but has stronger moveset than an older 'mon.
- Drop old mon - introduce new.

I can't see a reason to not just have this default internally - please argue otherwise.

Now @langerhans mentioned a "*sweet spot*"..

# cp_iv_balancer

That's finding a balance between CP/IV ratio's as to prevent the following situation:

- Currently own 1400 CP 96% IV Eevee
- Just caught 400 CP 97% IV Eevee

- Do we state that *new* Pokemon must be X% of current Pokemon's CP and no greater than X% difference in IV in order for it to be replaced?

I personally wouldn't mind leveling up the 400 but I completely understand the latter.

Thoughts?


 Comments: 
 Comment 0: @Agronis Look at this site for moveset DPS info: http://www.pokemongodb.net/2016/05/alakazam.html
This is how I decide which pokemon to level up. 
 Comment 1: @pilotchute 

I don't want to have to research each time I have something @ 100% to see if I really want to level it up or not.

The values given in this game are different from what you provided, whereas, in my issue I've provided a website that accurately displays PokemonGo's actual attack values.

This method can and should be automated.
{'source': 'GithubIssues', 'repo_name_with_owner': 'jabbink/PokemonGoBot', 'issue_id': 168109441, 'repo_stars': 831.0}