Improves App & Firmware Loading

* Fixes a number of bugs and corner cases around app & firmware loading.
* Fixes a bug where stale output from a previous SPP connection could cause libpebble to get confused.
* Adds a command-line utility (p.py) to perform basic development tasks such as app loading, pinging a connected watch and reading logs from the watch.
* Moves pebble.py into a proper package.
* Bug fixes and formatting tweaks.