Repository: Knio/pynmea2

Issue:
Issues with parshing PASHR sentences
Hi,

Just ran into some troubles when trying to parse an NMEA stream containing PASHR sentences, like below:
```
$PASHR,122144.75,240.68,T,,,,,,,2*04
$PASHR,122144.96,240.30,T,,,,,,,2*04
$PASHR,122145.18,239.91,T,,,,,,,2*06
$PASHR,122145.61,239.04,T,,,,,,,2*04
$PASHR,122145.83,238.59,T,,,,,,,2*01
$PASHR,122146.05,238.13,T,,,,,,,2*02
```

Seems like the special logic for these messages (see [here](https://github.com/Knio/pynmea2/blob/master/pynmea2/types/proprietary/ash.py#L24-L26) and [here](https://github.com/Knio/pynmea2/blob/master/pynmea2/types/proprietary/ash.py#L35-L37)) does not fit the messages that I have. 

The regex in the the last link is not catching the messages due to different number of decimal values in the timestamp. I.e. `122144.75` does not give a match with `'^\d{6}\.\d{3}$'`. Changing the regex to `'^\d{6}\.\d{2,3}$'` seems to do the trick.

Discussion:
coveralls: 
[![Coverage Status](https://coveralls.io/builds/38413497/badge)](https://coveralls.io/builds/38413497)

Coverage remained the same at 98.229% when pulling **8365be2d6be108397a0ec37db9c8772d6bc08a00 on freol35241:fix_122** into **2dab8f59045365463a33013cd1f95140943193fd on Knio:master**.

coveralls: 
[![Coverage Status](https://coveralls.io/builds/38413497/badge)](https://coveralls.io/builds/38413497)

Coverage remained the same at 98.229% when pulling **8365be2d6be108397a0ec37db9c8772d6bc08a00 on freol35241:fix_122** into **2dab8f59045365463a33013cd1f95140943193fd on Knio:master**.


Patch:
diff --git a/pynmea2/types/proprietary/ash.py b/pynmea2/types/proprietary/ash.py
index d62a10e..0715bef 100644
--- a/pynmea2/types/proprietary/ash.py
+++ b/pynmea2/types/proprietary/ash.py
@@ -34,7 +34,7 @@ class ASHRATT(ASH):
     '''
     @staticmethod
     def match(data):
-        return re.match(r'^\d{6}\.\d{3}$', data[1])
+        return re.match(r'^\d{6}\.\d{2,3}$', data[1])
 
     def __init__(self, *args, **kwargs):
         self.subtype = 'ATT'


Test patch:
diff --git a/test/test_ash.py b/test/test_ash.py
index b33261e..24a2bac 100644
--- a/test/test_ash.py
+++ b/test/test_ash.py
@@ -32,6 +32,13 @@ def test_ashratt():
     assert msg.render() == data
 
 
+def test_ashratt_with_2_vs_3_decimal_timestamp():
+    msg_3 = pynmea2.parse('$PASHR,130533.620,0.311,T,-80.467,-1.395,,0.066,0.067,0.215,2,3*0B')
+    msg_2 = pynmea2.parse('$PASHR,130533.62,0.311,T,-80.467,-1.395,,0.066,0.067,0.215,2,3*3B')
+
+    assert msg_3.timestamp == msg_2.timestamp
+
+
 def test_ash_undefined():
     '''
     Test that non-ATT messages still fall back to the generic ASH type